19

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

概括:

  1. 它只发生在 iOS 6.0 上(不会发生在 iOS 5.x、4.x 模拟器或真实设备上)
  2. 所有委托方法都被触发(shouldBeginEditing: didBeginEditing:)除了shouldChangeCharactersInRange:
  3. isFirstResponder 标志的行为设置正确(shouldBeginEditing:记录 NO,而 didBeginEditing:正确记录 YES)。它还使用 THE firstResponder 是已编辑的日志进行测试。
  4. 在将任何UIAlertView内容呈现给用户并关闭后,它会自行修复。此警报是否显示在同一屏幕(UIViewController 视图)或任何其他屏幕上都没有关系。

我什至不知道如何处理或调试它。

我应该在哪里寻找提示?有跟踪响应者链相关问题等的专家吗?

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

4

4 回答 4

19

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

干杯... :)

于 2012-09-20T10:53:42.243 回答
2

就我而言,主窗口上有一个“启动时可见”,它未选中,仅适用于 iOS5,需要检查它才能使其在 iOS6 上运行。

于 2013-03-21T05:13:51.863 回答
0

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

于 2013-07-11T20:13:55.347 回答
0

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

于 2013-01-09T00:34:46.043 回答