上一篇已經對于xib與控件之間的關系都大緻介紹了;
那麼本篇不再詳細解釋如何如何連接配接控件以及控件代碼等,直接給出代碼以及需要注意的簡單介紹下,便于童鞋們使用時可以給與參考:
1. 首先建立一個MyView類,繼承NSView,如下:
<a href="http://blog.51cto.com/xiaominghimi/969970#">?</a>
1
2
3
4
5
6
7
8
9
10
11
12
<code>//</code>
<code>// MyView.h</code>
<code>// ManyControlTest</code>
<code>// Created by Himi on 12-6-6.</code>
<code>// Copyright (c) 2012年 Himi. All rights reserved.</code>
<code>#import <Cocoa/Cocoa.h></code>
<code>@interface MyView : NSView</code>
<code>@end</code>
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
<code>// MyView.m</code>
<code>#import "MyView.h"</code>
<code>@implementation MyView</code>
<code>- (id)initWithFrame:(NSRect)frame</code>
<code>{</code>
<code> </code><code>self = [super initWithFrame:frame];</code>
<code> </code><code>if</code> <code>(self) {</code>
<code> </code><code>// Initialization code here.</code>
<code> </code><code>}</code>
<code> </code>
<code> </code><code>return</code> <code>self;</code>
<code>}</code>
<code>- (</code><code>void</code><code>)drawRect:(NSRect)dirtyRect</code>
<code> </code><code>NSString * str =@</code><code>"MyView --by Himi"</code><code>;</code>
<code> </code><code>//屬性包裝設定</code>
<code> </code><code>NSMutableDictionary *dic = [NSMutableDictionary dictionary];</code>
<code> </code><code>//設定字型樣式</code>
<code> </code><code>[dic setObject:[NSFont fontWithName:@</code><code>"Times"</code> <code>size:14] forKey:NSFontAttributeName];</code>
<code> </code><code>//設定字型顔色</code>
<code> </code><code>[dic setObject:[NSColor redColor] forKey:NSForegroundColorAttributeName];</code>
<code> </code><code>//繪制</code>
<code> </code><code>[str drawAtPoint:NSMakePoint(50, 50) withAttributes:dic];</code>
代碼很easy了解,不在贅述啦~
下面我們看一些基礎常用控件:
41
42
43
<code>// AppDelegate.h</code>
<code>// Created by Himi on 12-6-3.</code>
<code>@interface AppDelegate : NSObject <NSApplicationDelegate,NSTabViewDelegate></code>
<code> </code><code>IBOutlet NSTextField *nfCount;</code>
<code> </code><code>IBOutlet NSView *view ;</code>
<code> </code><code>IBOutlet NSButton *btn;</code>
<code> </code><code>IBOutlet NSPopUpButton *popBtn;</code>
<code> </code><code>IBOutlet NSSegmentedControl * nsc;</code>
<code> </code><code>IBOutlet NSForm *nForm;</code>
<code> </code><code>IBOutlet NSMatrix * ms;</code>
<code> </code><code>IBOutlet NSStepper * nsp;</code>
<code> </code><code>IBOutlet NSTabView *tbView;</code>
<code> </code><code>IBOutlet NSColorWell * nsWell;</code>
<code> </code><code>IBOutlet MyView * myView;</code>
<code>-(IBAction)btnPress:(id)sender;</code>
<code>@property (assign) IBOutlet NSWindow *window;</code>
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
<code>// AppDelegate.m</code>
<code>#import "AppDelegate.h"</code>
<code>@implementation AppDelegate</code>
<code>@synthesize window = _window;</code>
<code>- (</code><code>void</code><code>)applicationDidFinishLaunching:(NSNotification *)aNotification</code>
<code> </code><code>//------綁定Delegate</code>
<code> </code><code>[tbView setDelegate:self];</code>
<code>-(IBAction)btnPress:(id)sender{</code>
<code> </code><code>//------ 處理NSButton的</code>
<code> </code><code>if</code><code>(btn == sender){</code>
<code> </code><code>[myView setHidden:YES];</code>
<code> </code><code>//------處理NSPopUpButton</code>
<code> </code><code>if</code><code>(popBtn == sender){</code>
<code> </code><code>NSLog(@</code><code>"%@"</code><code>,[popBtn itemTitleAtIndex:0]);</code>
<code> </code><code>NSLog(@</code><code>"%@"</code><code>,[popBtn itemTitleAtIndex:1]);</code>
<code> </code><code>NSLog(@</code><code>"%@"</code><code>,[popBtn itemTitleAtIndex:2]);</code>
<code> </code><code>//------處理 NSSegmentedControl</code>
<code> </code><code>if</code><code>(nsc ==sender){</code>
<code> </code><code>NSLog(@</code><code>"%i"</code><code>,[nsc isSelectedForSegment:0]);</code>
<code> </code><code>NSLog(@</code><code>"%i"</code><code>,[nsc isSelectedForSegment:1]);</code>
<code> </code><code>NSLog(@</code><code>"%i"</code><code>,[nsc isSelectedForSegment:2]);</code>
<code> </code><code>//------處理 NSForm</code>
<code> </code><code>if</code><code>(nForm == sender){</code>
<code> </code><code>NSLog(@</code><code>"NSForm Cell 1 is %@"</code><code>,[[nForm cellAtIndex:0] stringValue]);</code>
<code> </code><code>NSLog(@</code><code>"NSForm Cell 2 is %@"</code><code>,[[nForm cellAtIndex:1] stringValue]);</code>
<code> </code><code>NSLog(@</code><code>"NSForm Cell 3 is %@"</code><code>,[[nForm cellAtIndex:2] stringValue]);</code>
<code> </code><code>//------處理NSMatrix</code>
<code> </code><code>if</code><code>(ms == sender){</code>
<code> </code><code>NSLog(@</code><code>"NSMatrix is Select = %@"</code><code>,[[ms selectedCell] title]);</code>
<code> </code><code>//-----處理 NSStepper</code>
<code> </code><code>if</code><code>(nsp == sender){</code>
<code> </code>
<code> </code><code>NSString *string = [NSString stringWithFormat:@</code><code>"%i"</code><code>, (</code><code>int</code><code>)[nsp doubleValue]];</code>
<code> </code><code>[nfCount setStringValue:string];</code>
<code> </code><code>//-----處理 nsWell</code>
<code> </code><code>if</code><code>(nsWell == sender){ </code>
<code> </code><code>NSColor* color = [nsWell color];</code>
<code> </code><code>NSLog(@</code><code>"R=%f,G=%f,B=%f"</code><code>,[color greenComponent],[color redComponent],[color blueComponent]);</code>
<code>//------處理 tbView</code>
<code>//-(void)tabView:(NSTabView *)tabView didSelectTabViewItem:(NSTabViewItem *)tabViewItem{}</code>
<code>-(</code><code>void</code><code>)tabView:(NSTabView *)tabView willSelectTabViewItem:(NSTabViewItem *)tabViewItem{</code>
<code> </code><code>if</code> <code>([tbView indexOfTabViewItem:tabViewItem] == 0) {</code>
<code> </code><code>NSLog(@</code><code>"view 111"</code><code>);</code>
<code> </code><code>}</code><code>else</code> <code>if</code> <code>([tbView indexOfTabViewItem:tabViewItem] == 1) {</code>
<code> </code><code>NSLog(@</code><code>"view 222"</code><code>);</code>
運作截圖如下:
<a href="http://www.himigame.com/wp-content/uploads/2012/06/1232.png"></a>
本文轉自 xiaominghimi 51CTO部落格,原文連結:http://blog.51cto.com/xiaominghimi/969970,如需轉載請自行聯系原作者