UIResponder的传递顺序相当于是父类这个顺序

或者说响应者链对应的是视图层次结构,但是方向相反

这样我可以建立一个带xib文件的继承UIViewController的Ojective-C class为reportViewController,然后再建立一个继承UIView的Objective-C class为reportView

这里我们设置reportViewController里的UIView是reportView,

这样我们处理视图触摸事件时候,我们在reportView里写入消息管理函数touchesBegin:withEvent:等,但是为了按照MVC模型的管理机制,我们把消息处理代码写入专门的试图控制器里明显更合理,更方便修改、二次开发。那么我们可以在消息函数touchesBegin:withEvent:中采用[self.nextResponder manageTouches:]调用reportViewController中的函数,这里manageTouches是ViewController中定义的。虽然有警告,但是不影响效果。

 

处理控件的事件时候,有两种方法

1.[ctrlObject addTarget:action:forControlEvents]

2.IBAction,注意拖拽方向跟IBOutlet相反

 

控件都有一个delegate,它有一些相关的消息,可以在程序中完成对应的功能,譬如

-(BOOL)textFieldShouldReturn:(UITextField *)textField

{

    [textField resignFirstResponder];

    returnNO;

}

 -(void)textViewDidBeginEditing:(UITextView *)_textView

{

    button.hidden=NO;

}

 

- (BOOL)textViewShouldEndEditing:(UITextView *)_textView

{

    button.hidden=YES;

    returnYES;

}

- (void)searchBarSearchButtonClicked:(UISearchBar *)_searchBar

{

    [_searchBar resignFirstResponder];

}

隐藏键盘的时候可以在上面这些消息中调用[CtrlView resignFirstResponder]

posted on 2012-11-07 22:09  凰浴浴的CodingBlog  阅读(147)  评论(0)    收藏  举报