无法在iOS6中将文本键入UITextField或UITextView

时间:2012-09-19 22:25:50

标签: iphone uitextfield uitextview ios6 first-responder

在我的某个应用中,当我尝试编辑(键入一些文字)UITextFieldUITextView或任何其他“可文字的”UIControl时,光标会闪烁,但除了BACKSPACE之外,中没有输入任何字符(仅当我有一些初始文本时才有可能),RETURN和切换字符类型。这适用于整个应用程序的所有控件。

要点:

  1. 仅在iOS 6.0中发生(在iOS 5.x上不会发生,4.x在模拟器或真实设备上都不会发生)
  2. 触发所有委托方法(shouldBeginEditing:didBeginEditing :) shouldChangeCharactersInRange:
  3. isFirstResponder标志正确设置行为(shouldBeginEditing:记录NO,而didBeginEditing:正确记录YES)。它还使用第一个响应者已经编辑过的日志进行测试。
  4. 任何UIAlertView呈现给用户并被解雇之后,它会自行修复。如果此警报显示在同一屏幕(UIViewController视图)或任何其他屏幕上,则无关紧要。
  5. 我不知道如何处理或调试它。

    我应该在哪里寻找提示?任何追踪响应者链相关问题的专家等?

    如何追踪UIAlertView对此问题的影响?

4 个答案:

答案 0 :(得分:19)

根据您的实现,它是您忘记在应用程序委托的makeKeyAndVisible方法内调用的UIWindow类的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法或相应的Visible at Launch标记。你的主界面xib文件。

干杯...... :)

答案 1 :(得分:2)

在我的情况下,主窗口上有一个“启动时可见”,它未经检查,仅适用于iOS5,需要检查它以使其在iOS6上运行。

答案 2 :(得分:0)

在我的情况下,我有一个活动指示器会在后台活动期间弹出主窗口。在这种情况下,活动指示器视图有自己的窗口,该窗口设置为UIWindowLevelAlert。我无意中在这个窗口上调用了makeKeyAndVisible。稍后我会打电话给resignKeyWindow。这曾经在iOS 4和5上工作但在iOS 6中不再起作用。我发现这在技术上并不是必需的,因为只需使用window.hidden = Y / N就可以了。

答案 3 :(得分:0)

在我的情况下,我将我的UITextField的firstFirstResponder从ViewDidLoad移到了ViewDidAppear,这解决了我的问题。