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