我已经将UIWebView子类化添加到自定义UIMenuController功能中,并且它在iOS 9之前运行良好。我不确定发生了什么变化,但现在我遇到了一种情况,当我点击链接时,应该出现菜单,菜单短暂显示,但被解雇(不再向我点击)。
我很难弄清楚解雇的起源。我正在观察UIMenuControllerDidHideMenuNotification
通知,这确实在菜单消失后立即被调用,但我很难找到解雇的原因。
我认识到有许多不同的问题可能会潜伏,但我想知道是否有人之前曾经历过这样的事情?有没有办法以某种方式追踪解雇的原因?
答案 0 :(得分:8)
我对iOS9有同样的问题,我认为这是多个进程的结果。这不是理想的解决方案,但是......在我成为FirstResponder之后,我在setMenuVisible:YES之前添加了一个DELAY。
[self performSelector:@selector(showMenuController :) withObject:point afterDelay:0.4];
答案 1 :(得分:1)
请尝试在视图控制器中添加以下方法。
- (BOOL) canBecomeFirstResponder {
return YES;
}
答案 2 :(得分:0)
我遇到了类似的问题,试图在自定义视图中显示UIMenuController。上面提到的延迟修复不起作用。
要修复它,我必须向canBecomeFirstResponder添加覆盖,以便它返回true,同时返回到我的自定义视图和它所包含的viewController。
答案 3 :(得分:0)
这很奇怪;但是,在我的情况下,我将标签的UIFont设置为.SFUIText-Light
,它会导致menuController自动关闭。解决方案是将字体更改为SanFranciscoDisplay
。
顺便说一句,如果您使用git作为版本控制,我建议您使用git bisect
调试导致该错误的提交。