UIMenuController在被呈现后立即被解雇
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIMenuController在被呈现后立即被解雇相关的知识,希望对你有一定的参考价值。
我已经将UIWebView子类化添加到自定义UIMenuController功能中,并且它在ios 9之前运行良好。我不确定发生了什么变化,但现在我遇到了一种情况,当我点击链接时,应该显示菜单,菜单短暂显示,但被解雇(没有更多来自我)。
我很难搞清楚解雇的起源。我正在观察UIMenuControllerDidHideMenuNotification
通知,这确实在菜单消失后立即被调用,但我很难找到解雇的原因。
我知道有很多不同的问题可能会潜伏,但我想知道是否有人之前曾经历过这样的事情?有没有办法以某种方式追踪解雇的原因?
我对iOS9有同样的问题,我认为这是多个进程的结果。这不是理想的解决方案,但是......在我成为FirstResponder之后,我在setMenuVisible:YES之前添加了一个DELAY。
[self performSelector:@selector(showMenuController :) withObject:point afterDelay:0.4];
请尝试在视图控制器中添加以下方法。
- (BOOL) canBecomeFirstResponder {
return YES;
}
我试图在自定义视图中显示UIMenuController时遇到了类似的问题。上面提到的延迟修复不起作用。
要修复它,我必须向canBecomeFirstResponder添加覆盖,以便它返回true,同时返回到我的自定义视图和它包含的viewController。
它很奇怪;但是,在我的情况下,我将标签的UIFont设置为.SFUIText-Light
,它导致menuController自动关闭。解决方案是将字体更改为SanFranciscoDisplay
。
顺便说一下,如果你使用git作为你的版本控制,我建议你使用git bisect
来调试哪个提交导致这个错误。
以上是关于UIMenuController在被呈现后立即被解雇的主要内容,如果未能解决你的问题,请参考以下文章
在 UITextField 的 editingDidBegin 中显示 UIMenuController
如何使单元格中的 UIButton 在被点击后立即保持特定状态?