2010-04-16 106 views
15

我有两个文本字段的电子邮件和密码。以下代码在常规视图中显示字段时正常工作,但当它们位于弹出窗口中时,resignFirstResponder不起作用(成为FirstResponder的工作方式)。两个字段都调用了textFieldsShouldReturn。 任何想法,如果我失去了一些东西? 谢谢!iPad popover textfield - resignFirstResponder不会解雇键盘

- (BOOL)textFieldShouldReturn:(UITextField *)theTextField { 

    if (theTextField == email) { 
     [password becomeFirstResponder]; 
     return NO; 
    } 

    [theTextField resignFirstResponder]; 
    return NO; 
} 
+3

听起来像一个错误。我建议在bugreport.apple.com上提交报告。 – 2010-05-10 21:10:06

+2

当textFields在modalPresentationStyle = UIModalPresentationFormSheet – 2010-07-06 20:39:08

+0

的模态视图中时也有同样的问题,我也遇到了这个bug。 – 2010-07-13 14:59:36

回答

1

我不太清楚这一点,但是,据我所知响应层次,辞职将只工作,如果你有一些其他的应答者回答。

在常规视图中,视图本身是愿意的。在弹出窗口中,也许你需要对弹出的类进行一些操作(如重新实现一些响应方法)才能使其工作。

1

我也有这个问题。但是我通过制作另一个控件来解决这个问题,该控件不在firstResponder的popover中,后来又从那里退出了。但我不知道popover有什么问题。

2

this answer中所述,当视图以UIModalPresentationFormSheet样式呈现时,键盘有时仍保持在屏幕上。

17

检查this问题:

重写disablesAutomaticKeyboardDismissal为下面返回NO固定矿井的同一个问题。你应该把这个代码添加到您的视图控制器,由您发起的键盘:

- (BOOL)disablesAutomaticKeyboardDismissal { 
    return NO; 
} 
+1

有一个特例。如果你的视图控制器在UINavigaitonController中,你需要继承UINavigationController并覆盖那里的方法。有关更多信息,请参阅http://stackoverflow.com/questions/3316700/dismiss-keyboard-on-ipad/14879832#14879832。 – Quentamia 2013-02-14 16:50:50

0

答案是作为一个可能的解决方案,其他类似的问题提供的,而是在传统治疗不起作用。

总结 -

我有一个类似的问题(一定条件下),并尝试了一切 - 无济于事 - 包括在我的可能的解决方案列表是[OBJ的resignFirstResponder],disablesAutomaticKeyboardDismissal的”压倒一切'为我的视图控制器,[self.view endEditing:YES];和一堆其他的东西。

关于确定当前第一响应者的[id],仅仅发现它是零。敲击键盘上的“完成”或使用上述任何方法都不会做任何事情 - 键盘保持不变 - 即使在敲击另一个输入字段后也是如此。

屏幕本质上是一个ViewController,带有一个UITableView,每个单元中有一个文本输入字段 - 总共7或8个。敲击任何单元格将按预期调出键盘,并单击“下一步”按钮(隐藏键盘和其他处理)按预期工作。 但是,在横向模式下,键盘覆盖了最后一个字段,要求滚动表格以显示该字段。

滚动和点击最后一个输入字段后,键盘不能被解除 - 无论如何。唯一的解决方法是将表格滚回键盘下方,然后点击“下一步”按钮。这没有意义。

几乎在放弃(并实现解决方法)的时候,解决方案的工作是让最后一个输入字段成为firstResponder(即使它已经有一个闪烁的光标),然后在resignFirstResponder之后。

所以;

` - (无效)actionNext {

[[m_arrInputFields objectAtIndex:7] becomeFirstResponder]; 
[[m_arrInputFields objectAtIndex:7] resignFirstResponder]; 

}`

固定的问题 - 而[m_arrInputFields objectAtIndex:#任何其他索引#] 没有!

将是巨大的,如果任何人都可以提供清晰和对此的解释 - 其他 - 我希望这样可以节省别人工作了几个小时!