【Cocoa(mac) Application 开发系列之二】总结一些常用控件以及简单在自定义View上绘制字符串

转载 2015年11月18日 09:28:51

【Cocoa(mac) Application 开发系列之二】总结一些常用控件以及简单在自定义View上绘制字符串

那么本篇不再详细解释如何如何连接控件以及控件代码等,直接给出代码以及需要注意的简单介绍下,便于童鞋们使用时可以给与参考:

1. 首先创建一个MyView类,继承NSView,如下:

//
//  MyView.h
//  ManyControlTest
//
//  Created by Himi on 12-6-6.
//  Copyright (c) 2012年 Himi. All rights reserved.
//

#import <Cocoa/Cocoa.h>

@interface MyView : NSView
@end
//
//  MyView.m
//  ManyControlTest
//
//  Created by Himi on 12-6-6.
//  Copyright (c) 2012年 Himi. All rights reserved.
//

#import "MyView.h"

@implementation MyView 
- (id)initWithFrame:(NSRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code here. 
    }
    
    return self;
}

- (void)drawRect:(NSRect)dirtyRect
{ 
    
    NSString * str =@"MyView   --by Himi";
    
    //属性包装设置
    NSMutableDictionary *dic = [NSMutableDictionary dictionary];
    
    //设置字体样式
    [dic setObject:[NSFont fontWithName:@"Times" size:14] forKey:NSFontAttributeName]; 
    
    //设置字体颜色
    [dic setObject:[NSColor redColor] forKey:NSForegroundColorAttributeName];
    
    //绘制
    [str drawAtPoint:NSMakePoint(50, 50) withAttributes:dic];
}

@end

代码很easy理解,不在赘述啦~

下面我们看一些基础常用控件:

//
//  AppDelegate.h
//  ManyControlTest
//
//  Created by Himi on 12-6-3.
//  Copyright (c) 2012年 Himi. All rights reserved.
//

#import <Cocoa/Cocoa.h>
#import "MyView.h"

@interface AppDelegate : NSObject <NSApplicationDelegate,NSTabViewDelegate>
{
    
    IBOutlet NSTextField *nfCount;
    
    IBOutlet NSView *view ;
    
    IBOutlet NSButton *btn;
    
    IBOutlet NSPopUpButton *popBtn;
    
    IBOutlet NSSegmentedControl * nsc;
    
    IBOutlet NSForm *nForm;
    
    IBOutlet NSMatrix * ms;
    
    IBOutlet NSStepper * nsp;
    
    IBOutlet NSTabView *tbView;
    
    IBOutlet NSColorWell * nsWell;
    
    IBOutlet MyView * myView;
    
}

-(IBAction)btnPress:(id)sender;

@property (assign) IBOutlet NSWindow *window;

@end

 

//
//  AppDelegate.m
//  ManyControlTest
//
//  Created by Himi on 12-6-3.
//  Copyright (c) 2012年 Himi. All rights reserved.
//

#import "AppDelegate.h"

@implementation AppDelegate

@synthesize window = _window;

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    //------绑定Delegate
    [tbView setDelegate:self];
}
-(IBAction)btnPress:(id)sender{
    
    //------ 处理NSButton的
    if(btn == sender){
        [myView setHidden:YES];
    }
    
    
    //------处理NSPopUpButton
    if(popBtn == sender){
        NSLog(@"%@",[popBtn itemTitleAtIndex:0]);
        NSLog(@"%@",[popBtn itemTitleAtIndex:1]);
        NSLog(@"%@",[popBtn itemTitleAtIndex:2]);
    }
    
    //------处理 NSSegmentedControl
    if(nsc ==sender){
        NSLog(@"%i",[nsc isSelectedForSegment:0]); 
        NSLog(@"%i",[nsc isSelectedForSegment:1]); 
        NSLog(@"%i",[nsc isSelectedForSegment:2]); 
    }
    
    //------处理 NSForm
    if(nForm == sender){
        NSLog(@"NSForm Cell 1 is %@",[[nForm cellAtIndex:0] stringValue]); 

        NSLog(@"NSForm Cell 2 is %@",[[nForm cellAtIndex:1] stringValue]);

        NSLog(@"NSForm Cell 3 is %@",[[nForm cellAtIndex:2] stringValue]); 
    }

    //------处理NSMatrix
    if(ms == sender){
        NSLog(@"NSMatrix is Select = %@",[[ms selectedCell] title]); 
    }

    //-----处理 NSStepper
    if(nsp == sender){
        
        NSString *string = [NSString stringWithFormat:@"%i", (int)[nsp doubleValue]]; 
        [nfCount setStringValue:string];
    }
    
    //-----处理 nsWell 
    if(nsWell == sender){  
        NSColor* color =  [nsWell color];
        NSLog(@"R=%f,G=%f,B=%f",[color greenComponent],[color redComponent],[color blueComponent]); 
    }
}

//------处理 tbView
//-(void)tabView:(NSTabView *)tabView didSelectTabViewItem:(NSTabViewItem *)tabViewItem{}
-(void)tabView:(NSTabView *)tabView willSelectTabViewItem:(NSTabViewItem *)tabViewItem{
    if ([tbView indexOfTabViewItem:tabViewItem] == 0) {
        NSLog(@"view 111");
    }else if ([tbView indexOfTabViewItem:tabViewItem] == 1) {
        NSLog(@"view 222");
    }
}

@end

 

运行截图如下:

创建一个Mac OS X 下的Cocoa Application对话框程序

操作系统:Mac OS X Lion 10.7.3 开发环境:Xcode4.2.1 一.创建一个Cocoa Application项目 1.[File]->[New]->[New P...
  • nokiaxjw
  • nokiaxjw
  • 2012年03月12日 23:44
  • 9256

【Cocoa(mac) Application 开发系列之一】创建第一个application—计算器

本站文章均为 李华明Himi 原创,转载务必在明显处注明:转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/mac-cocoa-application/89...
  • xiaominghimi
  • xiaominghimi
  • 2012年06月06日 11:44
  • 13449

[Cocoa]_[初级]_[Cocoa入门级界面开发之界面初级程序编辑的步骤和实现方法]

1.打开Xcode,创建一个项目,选择Cocoa Application ,点击 next,Class:命名TestCocoaApplication.默认选择,直到完成为止。 ...
  • moqj_123
  • moqj_123
  • 2014年12月11日 11:07
  • 1321

IOS开发学习一 :Cocoa环境熟悉和Xcode使用

ios开发的前期准备就是一台mac机子。 我这边完全是一步一步来的。可能可以跳过很多 一。Mac的基础 1.首先就是查看你当前的操作系统,能更新升级就升级。 2.系统的很多设置,都是在偏好设置...
  • Nono_Love_Lilith
  • Nono_Love_Lilith
  • 2012年04月21日 16:18
  • 14279

xcode之Application Loader

从2010年年中开始,开发者上传软件必须使用Application Loader这个MAC机上的应用程序。因此必须有MAC操作系统才能上传软件,没有条件的可以考虑暂借其他人的MAC笔记本电脑或在电脑上...
  • ojl12345
  • ojl12345
  • 2014年02月12日 22:17
  • 1535

创建一个Mac OS X 下的Cocoa Application对话框程序

  • 2012年03月13日 22:54
  • 36KB
  • 下载

[MAC]建立第一个MACApplication 应用,使用MAC里面的Xcode软件

2014-05-08 建立第一个MACApplication 应用,使用MAC里面的Xcode软件 主要使用的是:Cocoa控件技术 以下实现的功能是:一个MAC应用,显示2个编辑框,2个便签,...
  • u013317006
  • u013317006
  • 2014年05月08日 19:45
  • 2021

Mac OS X下从服务进程中启动另一个应用程序(Cocoa Application)

最近因为工作的原因,开始转向Mac OS X下的应用程序开发,基于最新的Mac OS X 10.12以及Xcode8.1。有一个功能是需要在当前的服务进程(Command line tools工程)中...
  • qq_20815981
  • qq_20815981
  • 2016年12月27日 11:40
  • 909

MAC Cocoa Opengl入门系列教程二(OpenGl坐标系)

本章节主要教大家了解opengl中的坐标系 1.opengl中是怎样的一个坐标系? 答:opengl使用右手笛卡尔坐标系,箭头->方向为正,反为负。                    ...
  • u010260725
  • u010260725
  • 2016年01月22日 14:54
  • 738

mac下得OpenGL开发环境

作为3D的工业标准,OpenGL在苹果上可以说无处不在,用起来也是分外的舒服。 一般OpenGL需要搭配一些窗口库来做,比如Qt、MFC等,或者用跨平台的GLUT。 好在GLUT是Mac OS...
  • X805433354
  • X805433354
  • 2014年05月29日 17:24
  • 12834
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Cocoa(mac) Application 开发系列之二】总结一些常用控件以及简单在自定义View上绘制字符串
举报原因:
原因补充:

(最多只允许输入30个字)