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

本站文章均为 李华明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

 

运行截图如下:

时间: 2024-11-27 06:37:15

【COCOA(MAC) APPLICATION 开发系列之二】总结一些常用控件以及简单在自定义VIEW上绘制字符串的相关文章

【COCOA(MAC) APPLICATION 开发系列之一】创建第一个APPLICATION—计算器

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/mac-cocoa-application/893.html 终于HTTP与Socket服务器以及cocos2dx之间的通信各种框架成功完成后,现在抽时间学习下mac下的cocoa application,当然啦 主要用于做编辑器. 很多童鞋问我为什么不用swing swt等Java的编辑器,这样能跨平台.其实对于java写编辑器呢,Himi

【COCOA(MAC) APPLICATION 开发系列之四】动作编辑器(COCOS2DX)制作流程详解及附上响应鼠标滚轴事件、反转坐标系、导入/创建资源目录等知识点代码!

本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2dx/911.html 又要说好久没更新博文啦,咳咳-. 其实博文中对于游戏开发,从j2me-android-ios ,从Client端-Server端  ,从jbox-cocos2d-cocos2dx 基本都囊括了,当然还有一些iap 防破解.GCC.架构等等,以及现在编辑器开发的博文,基本上貌似游戏开发不缺少什么了

【COCOA(MAC) APPLICATION 开发系列之三】自定义NSVIEW并绘制一些常见的图形及字符串;

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/mac-cocoa-application/908.html 不多说,比较简单,直接给出源码,大家作为参考吧. 对于Cocoa application 话说回来比较easy,如果之前你接触过iOS 的IB的话 ,基本上没什么可说的,上手很快: 因此对于Cocoa Application 不会太快的更新,接着Himi将对之前做的动编彻底的更新一

请问一下这二个是什么控件(红框框圈的)?如没有类似的控件可以提供代码吗? 

问题描述 请问一下这二个是什么控件(红框框圈的)?如没有类似的控件可以提供代码吗? 谢谢你们!!! 解决方案 解决方案二:TabStrip...常用控件之一...解决方案三:下面那个是某种Grid控件...也是很常见的...解决方案四:谢谢!我试一下解决方案五:tabStrip一般不在工具条显示,需要使用时按以下操作:右击工具箱,选择部件,在部件对话框中选择控件,然后复选microsoftwindowscommoncontrol6.0(sp6),确定然后在工具箱中就有了解决方案六:Tab和dat

ASP.net控件开发系列之二

"生死有序" "装装孙子" 上篇文章<开篇>说了不少空洞的理论,这篇文章我还是先说说"大而化之"的东西:1.ASP.net控件(包括页面本身)的生命期的细节:2.如何开始一个控件的编写. "生死有序" ASP.net处理程序在接收到一个用户的页面请求后,它是如何变戏法把一个鲜活的页面呈现给客户端的呢?它都做了哪些事?按什么顺序做的? 要说明这个问题,我们首先要明白,一个页面它本身也是一个Control.从设计模式的

C#微信公众号开发系列教程二(新手接入指南)

原文:C#微信公众号开发系列教程二(新手接入指南) 此系列前面已经更新了两篇博文了,都是微信开发的前期准备工作,现在切入正题,本篇讲解新手接入的步骤与方法,大神可直接跳过,也欢迎大神吐槽. 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南)   微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流程是这样的,用户发送消息到微信服务器,微信服务器将接收到的消息post到用

Windows Phone开发(10):常用控件(上)

原文:Windows Phone开发(10):常用控件(上) Windows Phone的控件有几个来源,和传统的桌面应用程序开发或Web开发一样,有默认提供的控件和第三方开者发布的控件.一般而言,如果不是过于复杂的界面布局,使用默认控件就足矣.相比之下,Android SDK中尽管提供了许多可视化控件,但你会发现,实际开发用到的并不多,而且很多控件完全只是摆设,既没有公开相应的操作方法也没有更多可用于开发者自行处理的监听器(这里我习惯翻译为监听器,在安卓里面没有像C#那样使用事件,而是new一

iOS开发一款小巧简洁的日历控件

iOS开发一款小巧简洁的日历控件 一.引言         日 历是iOS开发中有时会用到的一个UI控件,网上开源的代码也很多,我浏览过一些,大致有两种模式,一种是日历的逻辑由开发者自己实现,通过计算闰年与平 年来确定月份天数,另外一种模式是通过NSDate这个时间类,来获取日历的信息.我个人认为后一种更加安全,代码性能也会更加优质,下面就是我用这种模 式实现的一个日历控件. 二.设计思路 1.先来看下效果吧                     2.我们需要实现的功能 (1)每行7天,对应星

Win 10开发输入搜索自动提示下拉控件(AutoSuggestBox)实例

AutoSuggestBox控件与TextBox控件相似,但,AutoSuggestBox控件可以提供一个下拉列表,用户可以从弹出的下拉列表中选择一个项,并把被选项的内容显示在输入框上.就类似于搜索引擎的输入页面. 在使用AutoSuggestBox控件时,要注意它有几个重要事件. a.当下拉列表中的项被选择后,会发生SuggestionChosen事件. b.当在QuerySubmitted的下拉列表中做出选择后,或者单击输入框右边的查找图标(如果有,需自行设置)会提交输入的文本,这时候会发生