0

我可以让我的应用程序进入 UITextField 控件停止响应按键的状态。

我仍然有一个闪烁的插入符号。键盘出现了。UITextField 委托方法被正确调用。

唯一的问题是按键事件不起作用。它似乎发生在我调用了以下 UIViewController 方法之后:

- (void)transitionFromViewController:(UIViewController *)fromViewController
                    toViewController:(UIViewController *)toViewController 
                            duration:(NSTimeInterval)duration 
                             options:(UIViewAnimationOptions)options 
                          animations:(void (^)(void))animations 
                          completion:(void (^)(BOOL finished))completion;

有什么想法可能导致这种情况吗?如何预防或修复?

谢谢。

4

2 回答 2

0

代码已经在需要的地方调用了 becomeFirstResponder,这就是键盘出现并且插入插入符号闪烁的原因。

但是,您的应用程序还需要一件事来接受按键。您的应用程序窗口必须是关键窗口。

事实证明,这是由于在网络操作期间使用了一个出现在前台的窗口而导致的,该窗口上有一个等待指示器。

那个窗口正在成为关键窗口。

当等待指示器窗口被关闭时,主应用程序窗口没有被分配为关键窗口。

因此,在我的应用程序委托中,我添加了以下行:

[waitIndicatorWindow resignKeyWindow];
[waitIndicatorWindow removeFromSuperview];
waitIndicatorWindow = nil;

[self.window makeKeyWindow]; <- added this line to fix the problem.
于 2012-12-03T02:06:11.493 回答
0

过渡完成后,尝试

[yourTextField becomeFirstResponder]
于 2012-12-02T10:37:46.127 回答