当我解除在iPhone上的UIWebView中点击UIMenuController上的定义打开的字典时,我一直收到以下错误: –
Unbalanced calls to begin/end appearance transitions for <_UIFallbackPresentationViewController: 0x10ab9640>.
在此错误之后,UIMenuController在任何UIWebView中都会停止显示.
有什么想法在这里发生了什么?
更新2:错误是应用程序范围.在任何地方都有可选择的文本(即webview,textview等)我只能使用一次定义字典.此错误显示为&然后,我必须退出应用程序&再次启动它,使用字典.
解决方法
终于找到了答案.当字典由系统呈现时,它的窗口会获得焦点(请参阅makeWeyAndVisible:在UIWindow中),这很棒.当解除持有字典的窗口没有正确地给主应用程序窗口后焦点的位置时出现问题.
如果在字典出现之前和之后打印出[UIApplication sharedApplication] .keyWindow,那么您将看到应用程序窗口之前是如何键和可见的,之后它是一个不同的窗口.对我来说,我有一个单独的窗口,用于存放在状态栏顶部的应用程序消息,而那个是在字典被解除后的keyAndVisible.
所以我需要做的就是修复它,我的UIWindow子类中有以下覆盖方法错误地获得了焦点:
- (void) makeKeyWindow { AppDelegate * appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; [appDelegate.window makeKeyAndVisible]; }
我不确定这对那些如果你没有自己的UIWindow可以集中注意力,但绝对最坏的情况你可以添加一个虚拟UIWindow,它将获得焦点并从上面添加完全相同的代码片段.