読み込んでいます...

按照我的个性,不会把Hello World写好几遍,但是Mac开发确实和一般的开发过程有点不太一样,说一般,可能是因为我用Windows用太久了吧,对事件和消息模式感到特别的熟悉,但是对Mac的连接模式,感觉还是有点怪怪的,所以在做Mac下的应用程序开发的时候,还是花了一点时间,所以,刚好有空,就纪录一下。由于HelloWorld和iPhone前面说的差不多,所以这里顺带还会说一下事件。

同样,还是打开XCode,但是我们这里创建的是一个Mac应用程序,如下图。

这里,我们创建一个HelloWorld应用程序,创建完成之后,我们就能够看到一个非常熟悉的XCode界面。

虽然我们有XCode这个IDE帮助我们开发Mac应用程序,而且好像看上去和开发iPhone应用程序差不多,这个时候你说不定已经开始摩拳擦掌了,但是可惜的是,在开发一个Mac的Hello World应用程序,并执行一个事件还不是那么容易的问题,当然,这个时候如果我们退缩了的话那就永远写不了一个HelloWorld程序了。

首先,我们打开MainMenu.xib这个文件,首先我们还是会看到熟悉的Interface Builder。

我们做主界面如上图所示即可,上面一个TextField,下面一个Button。一个非常简单的应用程序,我们想做的是当单击按钮,在文本框中显示Hello World。这个时候,可能有iPhone开发经验的你会想我们是不是要加一个Controller,是View还是什么呢?其实iPhone开发和Mac开发有一些相同的地方,但是Mac开发还是有一些复杂的,这里我们首先要创建一个文件,并取名叫MainController。

我们分别在文件的头文件和代码文件中编写如下代码,加粗的是后来加上的意思。头文件如下(注意,我们这里也可以不用创建继承自NSView的类,直接继承NSObject也可以):

#import <Cocoa/Cocoa.h>

@interface MainController : NSView {
    IBOutlet NSButton *button;
    IBOutlet NSTextFieldCell
*textbox;

}

@property (nonatomic,retain) NSButton *button;
@property (nonatomic,retain) NSTextFieldCell
*textbox;

- (IBAction)buttonClicked:(id)sender;

@end 

上面代码想做的事情已经很明显了,现在我们在代码文件中实现如下代码: 

#import "MainController.h"

@implementation MainController

@synthesize button;
@synthesize textbox;

- (IBAction)buttonClicked:(id)sender
{
    textbox.title
= @"Hello World";
}

- (id)initWithFrame:(NSRect)frame {
    self
= [super initWithFrame:frame];
    
if (self) {
        
// Initialization code here.
    }
    
return self;
}

- (void)drawRect:(NSRect)dirtyRect {
    
// Drawing code here.
}

@end

上面的代码很容易理解吧,就是定义一个变量,但是难的是如何去连接这些东西,这也是我觉得Mac里面最麻烦的一个事情。

首先,我们打开Interface Builder然后在Library中拖动一个新的Object到nib中,如下图。

拖动完成之后,我们更改这个Object的Class名称,让它映射到相应的Controller上面去。

我们将相应的类的名称更改为我们刚才创建的Controller的名称,这样这个类就知道如何去映射代码文件了。

更改完成后,我们右键单击Main Controller,可以看到弹出的黑色的下拉菜单,里面有我们编写的button和textbox,我们连接相应的对象即可。

连接完成相应的对象之后,我们就需要连接事件了,我们单击按钮,并在事件区域找到相应的事件,然后拖动到Main Controller中,然后指定相应的事件即可。

然后我们就连接了事件,当事件连接完成之后,我们就连接了所有的对象,需要的事件了,这样,当我们运行程序的时候,就可以实现单击按钮显示HelloWorld的需求了,虽然连接事件和代码结构比较复杂和麻烦,但是时间用久了之后,就会大概知道是怎样一个步骤了,这里我小结一下。

  • 编写UI,xib文件。
  • 编写Controller类,编写相应的控件的对象和事件代码。
  • 连接对象和事件。

基本上经过上面三个步骤,就能够连接事件并执行相应的代码了。不过Mac开发要比iPhone开发复杂一些,下面的一些文章,我会分享一下关于使用控件的一些复杂的地方,刚好我也在自学,如果有错误的,请联系我更改。:)

600路过 1评论 Mac开发 阅读全文..
  1. 置顶的更新 : GuoJing's Blog | 用心对待每一行代码 @

    [...] Mac开发 – Hello World和事件响应 [...]

:-D :-? 8) :cry: 8-O :lol: :-x :-| :?: :-P :oops: :roll: :( :) :-o :wink: more »