`
runfeel
  • 浏览: 936185 次
文章分类
社区版块
存档分类
最新评论

【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
//
// 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

运行截图如下:


分享到:
评论

相关推荐

    java swt自定义控件

    下面是一个简单的自定义按钮控件的例子,它在按钮上显示一个自定义的图标。 ```java import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.GC; import org.eclipse.swt.graphics.Image; import org....

    创建一个Mac OS X 下的Cocoa Application对话框程序

    总结来说,创建Mac OS X下的Cocoa Application对话框程序涉及以下几个关键步骤:使用Xcode创建项目,设计对话框界面,添加控件,编写处理用户交互的代码,以及实现对话框的显示与关闭。通过这个过程,我们可以更好地...

    iPhone开发基础 cocoa入门

    Cocoa是Apple为Mac OS X和iOS平台提供的一套强大的应用开发框架。对于iPhone开发来说,掌握Cocoa是必不可少的基础之一。本章节将从Cocoa的定义出发,深入探讨其在iPhone开发中的地位与作用。 - **Cocoa定义**:...

    Wrox.Professional.Cocoa.Application.Security.Jun.2010.rar

    《Wrox Professional Cocoa Application Security Jun 2010》这本书主要关注的是苹果平台上的Cocoa应用程序的安全性。Cocoa是Apple macOS和iOS操作系统的核心开发框架,用于构建原生的、高性能的应用程序。这本书...

    Cocoa绘制渐进色文字

    在iOS和macOS开发中,Cocoa框架是Apple公司提供的一种强大的UI开发工具,它允许开发者创建各种各样的用户界面。在Cocoa编程中,我们经常需要对文本进行各种定制化处理,比如改变颜色、字体或者添加特殊效果。在本...

    苹果开发之Cocoa编程

    Cocoa框架是Apple为Mac OS X和iOS提供的软件开发框架之一,它包含了一系列APIs,用于构建应用程序界面和服务。通过本教程的学习,开发者可以掌握如何利用Cocoa框架开发高质量的应用程序。 ### 一、Cocoa概述 Cocoa...

    Cocoa Programming for Mac OS X

    Cocoa 的核心在于其强大的对象模型以及一系列支持图形用户界面开发的高级类。 - **发展历程**:Cocoa 的历史可以追溯到 NextStep 操作系统,随着苹果收购 NeXT,Cocoa 成为了 macOS 应用开发的核心技术之一,并逐渐...

    苹果开发之Cocoa编程原书第4版

    在苹果开发之Cocoa编程原书第4版中,你将深入学习如何利用Objective-C或Swift语言来构建高效、功能丰富的应用程序。这本书是mac app开发者的宝贵资源,提供了详尽的指导和实践案例。 Cocoa框架由两部分组成:...

    Learn Cocoa on the Mac, 2nd Edition

    ### 学习Cocoa开发Mac应用 ——《Learn Cocoa on the Mac, 2nd Edition》 #### 必须热爱Cocoa 本章介绍了为何选择Cocoa作为开发Mac应用程序的首选框架,并简要概述了Cocoa的基本概念。Cocoa是苹果为Mac OS X提供的...

    苹果开发之Cocoa编程(第三版)(中文版)

    Cocoa编程是苹果平台应用程序开发的核心技术,尤其在Mac OS X和iOS系统中扮演着至关重要的角色。本书《苹果开发之Cocoa编程(第三版)(中文版)》旨在为开发者提供全面、深入的Cocoa编程指导。Cocoa框架基于Objective...

    苹果开发之Cocoa编程 (原书第4版)

    Foundation框架是Cocoa的基础,提供了一系列的系统服务和数据类型,如字符串、数组、字典等。而AppKit和UIKit则分别负责图形用户界面的构建,它们定义了视图、控制器和模型对象,使得开发者可以轻松创建和管理应用的...

    Cocoa常用类和方法

    在iOS开发中,Cocoa Touch框架提供了丰富的UI控件和视图类,使得开发者能够创建出功能丰富的应用程序。本文将详细讲解标题“Cocoa常用类和方法”中涉及的几个核心类:UIViewController、UIView以及UILabel。 首先,...

    Swift中文教程第二章-2.3字符串和字符[定义].pdf

    Swift还支持字符串插值,允许在字符串字面量中嵌入表达式,如`"The number is \(number)"`,其中\(number)会被替换为其对应的值。 Swift的String类型与Foundation框架中的NSString无缝集成,这意味着在Swift中创建...

    mac os开发pdf

    下面将详细阐述Cocoa框架以及其在Mac OS开发中的应用。 Cocoa框架基于Objective-C语言,但随着Swift的崛起,现在也完全支持Swift编程。它包含了大量预先构建的类和接口,这些可以帮助开发者快速、高效地创建功能...

    cocoa编程之菜鸟入门

    ### Cocoa编程之菜鸟入门 #### 一、Cocoa与Mac ...通过以上内容的详细阐述,我们可以看到《Cocoa编程之菜鸟入门》这本书旨在全面覆盖Cocoa开发的关键知识点和技术细节,适合任何希望学习Mac OS X应用开发的人士阅读。

    [Cocoa]_[切换view]

    在iOS和macOS开发中,Cocoa框架是Apple平台的核心技术,用于构建本地应用程序。本文将深入探讨如何在基于Document-Based Application中实现视图切换,这通常用于创建类似PDF或CHM文档查看器的应用。Document-Based ...

Global site tag (gtag.js) - Google Analytics