iphone的responder chain及interface builder中First Responder的使用方法

http://www.devdiv.com/thread-30694-1-1.html


我们先看一张图,看看event被处理的顺序
iphone的responder chain及interface builder中First Responder的使用方法 - wolfgangkiefer - 南中国海群岛
  
The general path of an event up the responder chain starts with a view—the first responder or the view under the mouse pointer or finger. From there, it proceeds up the view hierarchy to the window object and then to the global application object. However, the responder chain for events in iOS adds a variation to this path: If a view is managed by a view controller and if the view cannot handle an event, the view controller becomes the next responder.(如果一个视图被一个视图控制器管理着并且这个视图处理不了某个事件,则这个视图控制器就成为这个事件的下一级响应)
一般来说first responder就是主表或者指头触摸到的控件。
iphone中,responder chain为view->(view controller->)parent view(->parent view controller)->window->application。

我们再看一下怎么利用responder chain。
1. 建立一个view-based application,名字为view1
2. 双击view1ViewController.xib
3. 在interface builder中选中first reponder
点菜单tools->identity inspector

iphone的responder chain及interface builder中First Responder的使用方法 - wolfgangkiefer - 南中国海群岛

  
在identity inspector中新加一个action,名字叫myAction1

iphone的responder chain及interface builder中First Responder的使用方法 - wolfgangkiefer - 南中国海群岛

 

4. 在interface builder中选中button
5. 点菜单tools->connection inspector, 点中touch up inside拖拽到first responder
iphone的responder chain及interface builder中First Responder的使用方法 - wolfgangkiefer - 南中国海群岛
  
并且选中myAction1
iphone的responder chain及interface builder中First Responder的使用方法 - wolfgangkiefer - 南中国海群岛
  
6. 点击执行,点button,你会发现没有任何响应
7. 在view1ViewController.h中加入
- (IBAction) myAction1:(id)event;
在view1ViewController.m中加入
- (IBAction) myAction1:(id)event{
        UIAlertView *alertView = [[UIAlertView alloc] 
                                                          initWithTitle:@"Hello DevDiv" 
                                                          message:@"I'm a DevDiver" 
                                                          delegate:self 
                                                          cancelButtonTitle:@"OK" 
                                                          otherButtonTitles:nil];
        [alertView show];
        [alertView release];
}


8. 重新编译执行,点击button
 

iphone的responder chain及interface builder中First Responder的使用方法 - wolfgangkiefer - 南中国海群岛

 


 现在大家知道responder chain作用了吧。
button的first responder是它自己,当它不能处理某一action后,它就交给responder chain中的controller来处理。
另外,大家也明白了interface builder中First Responder怎么使用了吧。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值