UITextField没有得到键盘input
我有麻烦input文本到SVProgressHUD下的UITextField(基本上是一个UIView全屏透明UIWindow和一些UIView子视图显示文本和自定义绘制进度栏)。
我的问题是,UITextField显示闪烁的光标和键盘显示,但是当我点击一个键,没有什么是input到文本字段。 我只看到光标闪烁的中断就像正常一样。 有趣的是,后退(删除)键工作(它真的删除了UITextView中的最后一个字母),但没有任何其他键。
我正在使用iOS 6。
任何帮助将不胜感激。
编辑:相同的UITextField工作正常,当没有SVProgressHUD显示。 这让我觉得它与第一个响应者有关,但我已经尝试在resignFirstResponder
的每个窗口和子视图上调用resignFirstResponder,它仍然不起作用。
我终于find了问题:SVProgressHUD在初始化时调用makeKeyAndVisible
,因为它想要接收键盘通知以重新定位。 我查了一下“Key Window”究竟是什么,发现了:
…关键窗口响应用户input…
现在,因为SVProgressHUD的UIWindow是keyWindow,所以包含UITextField的其他窗口没有得到用户input。
我终于在AppDelegate的窗口上调用makeKeyWindow
,一切正常。
我希望这可以帮助任何有类似问题的人。
我的解决scheme:在显示SVProgressHUD
之前,先致电resignfirstresponder
closures键盘。
你有没有实施的方法….
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
…过滤掉任何不需要的字符? 如果是这样,也许这是过滤一点点overzealous?
对我来说这是有效的。
我做了我的文本字段委托方法的变化,然后它的工作。
if ([textField isEqual:selectBankName]) { return No; } else if ([textField isEqual:enterAmountTextfield]) { return YES; } return NO; }
- 设置文本字段的委托
-
确保textfield userInteraction是Enabled.And
-
最后请检查您的文本字段委托方法。