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之前,先致电resignfirstresponderclosures键盘。

你有没有实施的方法….

 - (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; } 
  1. 设置文本字段的委托
  2. 确保textfield userInteraction是Enabled.And

  3. 最后请检查您的文本字段委托方法。