前面我们做了一个简单的iPhone的Hello World,而且我们也可以编写一个非常简单的ui的应用程序,现在我们就要想如何去连接这些ui(也就是说添加事件了),例如我想要有一个这样的效果,上面我写了一个Hello World的文本框,现在我就想要单击一个按钮,将这个文本更改,也就是触发事件。
iPhone里面的事件是用委托形式触发的,这个我就不多说了,我们想要得到的效果如下所示。

虽然我们有界面编辑器,但是事件并不象VS里面单击某个控件那样会自动生成代码,我们需要编写一点代码去实现这个效果。首先我们还得回忆起来,iPhone是MVC的开发模式,于是我们直接在相应的Controller里写代码即刻,我们先在头文件中编写如下代码。
@interface HelloWorldViewController : UIViewController {
IBOutlet UILabel *helloworldText;
}
//定义控件这个属性
@property (retain,nonatomic) UILabel *helloworldText; //编写一个事件的代码
- (IBAction)buttonPressed:(id)sender;
@end
上面是我们写的头文件的代码,这个时候我们还需要写.m,也就是代码文件的代码,来实现我们相应的要求。代码如下。
@implementation HelloWorldViewController
//分配一些空间@synthesize helloworldText; - (IBAction)buttonPressed:(id)sender
{
//初始化一个字符串
NSString *text = [[NSString alloc] initWithFormat:@"Clicked"];
helloworldText.text = text;
}
现在我们的头文件和代码文件都写完了,逻辑很简单,就是buttonPressed事件触发了之后执行相应的代码。
注意:事件的写法一般都会加一个sender,我们通过sender对象获取发送事件的对象。
在编写好之后,我们再打开界面编辑器,连接这些控件。
首先,我们按住control,拖动File’s Owner,然后拖动到文本控件上,然后放开,这个时候你会看到一个灰色的小的popup,我们选择小的popup里面需要连接的对象即可,这里我们的变量名字是helloworldText,于是我们选种helloworldText。
选中之后,我们就添加File’s Owner到ui上了,然后我们就可以添加按钮事件了,我们选择按钮,在Connections Inspect中可以看到有个很像尺子的小图标,这个图标的左边就是事件按钮了,我们选择,在需要的事件右边的小圆圈中,这个时候不需要按住control,直接点击鼠标,拖动到按钮上即可。

添加完成之后,我们就可以看到我们的事件已经添加完毕了。

这里我添加的是Touch Up Inside事件,为什么是Touch Up Inside事件呢,因为苹果为用户体验以及很多细节都做了思考,例如我们有这个按钮,当我们按下去的时候发现又不想按了(这种情况时常发生),于是我们会拖动我们的指头到外面然后放开,这个时候我们的iPhone就知道用户其实是不想按的,所以Touch Up Inside事件是不会被触发的,其他的事件同理了。我就不需要多说了。
然后我们选择Build and GO,看看我们的事件是不是添加成功了?:)
有钱啊,都买iPhone了
[...] iPhone开发 – 添加事件 [...]