本文共 4058 字,大约阅读时间需要 13 分钟。
上一篇已经对于xib与控件之间的关系都大致介绍了;
那么本篇不再详细解释如何如何连接控件以及控件代码等,直接给出代码以及需要注意的简单介绍下,便于童鞋们使用时可以给与参考:
1. 首先创建一个MyView类,继承NSView,如下:
1 2 3 4 5 6 7 8 9 10 11 12 | // // 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 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | // // 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理解,不在赘述啦~
下面我们看一些基础常用控件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | // // 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 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | // // 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 |