思路:

使用UITextFieldDelegate:

UITextFieldTextDidBeginEditingNotification;开始编辑时
UITextFieldTextDidEndEditingNotification;结束编辑时
UITextFieldTextDidChangeNotification;值改变时

 

注册一个通知监听UITextField事件

-(void)viewWillAppear:(BOOL)animated{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(closeAllDropDownTable) name:UITextFieldTextDidBeginEditingNotification object:nil];
}



 

业务方法:


-(void)closeAllDropDownTable{
if (_encrypt_dropDownMenuTable.isOpen) {
[_encrypt_dropDownMenuTable.view removeFromSuperview];
}
if (_channel_dropDownMenuTable.isOpen){
[_channel_dropDownMenuTable.view removeFromSuperview];
}
}

 

移除通知:


- (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
//移除通知中心
[[NSNotificationCenter defaultCenter] removeObserver:self name:UITextFieldTextDidBeginEditingNotification object:nil];

}


 这样即可在textfield获得焦点的时候第一时间调用业务方法。

 

参考:

1.http://www.jianshu.com/p/0ab41087cf32