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]
浙公网安备 33010602011771号