【原创】第一个iOS应用程序( 三 )


@property (strong, nonatomic) IBOutlet UIButton *btn;
此时,其左侧行号区出现空心圆圈 。然后保存文件,切换回nib视图,此时在File's Owner上鼠标右键出现一个窗口,如图:
你会发现刚才定义的实例变量出现在了上图红框位置,然后使用鼠标拖动对应变量右侧的空心圆到对应的控件上,松开鼠标,此时注意复层中已经出现了关联关系,至此关联成功 。再返回头文件查看,发现此时变量左侧的空心圆也变成实心的了 。
4.2 给控件添加事件
上一节已经讲过如果将控件与代码关联,关联好后我们就可以给控件绑定相应的事件,让之拥有最终与用户发生交互的能力 。那么如何让一个控件拥有自己的事件呢?且继续往下看 。
给控件绑定事件有多种方法,第一种,使用纯代码实现:
[self.btn addTarget:self action:@selector(doSomething) forControlEvents:UIControlEventTouchUpInside];
然后我们实现一下方法:
- (void) doSomething {UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Test"message:@"This is an Alert Information"delegate:selfcancelButtonTitle:@"Cancel"otherButtonTitles: nil];[alert show];}
这样设置之后,当用户在按钮内部点击并松开手指时,就会触发事件,调用方法 。结果如图:
第二种,这种方法与创建代码与控件关联相类似 。首先打开,打开头文件和nib文件,按住键拖动空控件到控制器类的中间,如图:
注意红框部分与创建关联时有所不同,还要注意填写Name时,如果时较早版本的Xcode,需要在名称后面添加: 。点击按钮,会自动生成这样一句代码:
- (IBAction)doSomething:(id)sender;
好了,事件又一次绑定成功了! + R运行应用,查看效果 。
4.3 补充获取控件的另一种方法()
在nib文件的属性设置中有一个地可以直接设置其tag值,如图:
这个值理论上来说在一个视图中应该唯一,也可以通过代码设置这个值:
[self.btn setTag: 1000];
设置了这个值之后,便可以通过以下方法,取得nib中的控件:
UIButton *button = (UIButton *)[self.view viewWithTag:100];