我看了一下这个问题,在屏幕键盘拒绝当你调用resignFirstResponder
隐藏这么多的文章,但没有任何建议为我工作。
我正在使用XCode 5(iOS 7)并且有一个iPhone屏幕包含需要屏幕键盘的几个控件,但是如果用户单击了UIButton
,那么我希望键盘消失。
我大概浪费了一整天与resignFirstResponder
试验和增加disablesAutomaticKeyboardDismissal
函数返回NO,但毫无效果。一旦屏幕键盘出现,我再也无法让它消失。
但后来我有一个小脑波(因为我只有一个小脑袋)。
现在,当用户点击我的UIButton
,我只是禁用的UITextField
和UITextView
控制。
- (IBAction)btnDate_Tapped:(id)sender {
// The user has clicked on the "Date" button.
self.tbClientName.enabled = NO;
self.tbComments.editable = NO;
突然之间,应用发现它没有任何可编辑的文本字段需要一个屏幕上的键盘,它巧妙地滑过键盘淡出人们的视线。
(缓解叹息。)
我的UIButton
实际上会弹出一个对话框。当用户关闭弹出窗口时,我重新启用这两个控件,因此如果用户点击其中一个控件,键盘将再次出现。
-(void)popoverControllerDidDismissPopover:(UIPopoverController *) popoverController {
// The user has closed our popup dialog.
// We need to make our UITextField and UITextView editable again.
self.tbClientName.enabled = YES;
self.tbComments.editable = YES;
... etc...
}
简单,不是吗!
令人惊讶的是,这种解决方法甚至适用于UIViewControllers
,它们出现在模式样式中。
我希望这可以帮助其他XCode受害者。
你试过没有返回?返回YES可能会导致文本字段运行一些代码,从而使其再次成为第一响应者。 – rickharrison 2010-06-26 22:38:10
是的,我做了,它没有改变。但重点似乎从字段中删除,右侧的(X)清除字段内容不再显示后resignFirstResponder – favo 2010-06-27 07:22:47
我在iPad上遇到同样的问题 – 2010-09-01 20:08:55