本站文章均为 李华明Himi 原创,转载务必在明显处注明:
转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/mac-cocoa-application/902.html
上一篇已经对于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 |
运行截图如下: