簡體   English   中英

UIMenuController在顯示后立即被解雇

[英]UIMenuController is getting dismissed immediately after being presented

我將UIWebView子類化,以在其中添加自定義UIMenuController功能,直到iOS 9為止,它都運行良好。我不確定發生了什么變化,但是現在我遇到了當我點擊鏈接時應該顯示菜單的情況,該菜單會短暫顯示,但會被關閉(不再需要點擊我的菜單)。

我很難弄清楚這種解雇的根源。 我正在觀察UIMenuControllerDidHideMenuNotification通知,確實在菜單消失后立即被調用,但是我很難找到被解雇的原因。

我認識到可能存在許多不同的問題,但是我想知道以前是否有人經歷過類似的事情? 有沒有辦法以某種方式追蹤被解雇的原因?

在此處輸入圖片說明

我在iOS9上遇到了同樣的問題,我認為它是由於多個過程而發生的。 這不是理想的解決方案,但是...在成為FirstResponder之后,我在setMenuVisible:YES之前添加了DELAY。

[使用對象:指向afterDelay:0.4的[self performSelector:@selector(showMenuController :)];

請嘗試在視圖控制器中添加以下方法。

- (BOOL) canBecomeFirstResponder { 
   return YES; 
}

我在嘗試在自定義視圖中顯示UIMenuController時遇到了類似的問題。 並且上述延遲修復不起作用。

要解決此問題,我必須向canBecomeFirstResponder添加替代,以便它對我的自定義視圖和包含在其中的viewController返回true。

它很奇怪; 但是,在我的情況下,我將標簽的UIFont設置為.SFUIText-Light ,它導致menuController自動關閉。 解決方案是將字體更改為SanFranciscoDisplay

順便說一句,如果您使用git作為版本控制,我建議您使用git bisect調試導致該錯誤的提交。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM