iOS 解決UITextField resignFirstResponder 失效問題
2016年2月18日iOS Standard
背景:iOS 9.2 ,同一個NavigationController中,從處於編輯狀態的UITableViewController返回上一級,並且在viewWillDisappear中執行resignFirstResponder。
問題:再次進入此UITableViewController(在上級複用),發現該UITextField仍舊處於編輯狀態(自動焦點并彈出鍵盤)
解決方案:
在網上找了很多方案都無法解決,包括
1、[[[UIApplication sharedApplication] keyWindow] endEditing:YES]
解決方案:
在網上找了很多方案都無法解決,包括
1、[[[UIApplication sharedApplication] keyWindow] endEditing:YES]
2、[self.view endEditing:YES];//or tableview
3、-(BOOL) disablesAutomaticKeyboardDismissal { return NO; }
等等……
最後也是在stackoverflow上看到的治標方案:
– (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
allowEdit = YES;
}
– (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
allowEdit = NO;
}
– (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
return allowEdit;//自己聲明一個全局變量
}
发表评论或回复