2015-09-25 50 views
5

我有子類UIWebView添加自定義UIMenuController功能,它工作得很好,直到iOS 9。我不知道什麼改變了,但現在我遇到了一種情況,我點擊一個鏈接,應該顯示菜單,菜單簡要顯示,但被解僱(不再需要我點擊)。UIMenuController被呈現後立即被解僱

我很難找出解僱源自何處。我正在觀察UIMenuControllerDidHideMenuNotification通知,這確實是在菜單消失後才被調用,但我很難找到解僱的原因。

我意識到潛伏着許多不同的問題,但我想知道是否有人經歷過這樣的事情?有沒有辦法跟蹤解僱的原因?

enter image description here

+0

也許如果你能發佈所有相關的顯示代碼/隱藏菜單控制器我們可以幫助更多。 – Istvan

+0

我認爲你需要顯示一些代碼? –

回答

7

我有與iOS9相同的問題,我認爲它發生的結果是多個進程。這不是理想的解決方案,但是......在我成爲FirstResponder之後,我在setMenuVisible:YES之前添加了DELAY。

[self performSelector:@selector(showMenuController :) withObject:point afterDelay:0.4];

+1

工作很好!我會盡快給予獎賞。謝謝 – Lizza

0

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

- (BOOL) canBecomeFirstResponder { 
    return YES; 
} 
+0

我應該澄清,我確實在那裏。 – Lizza

+0

我明白了。你是否也在視圖或視圖控制器上調用了「-becomeFirstResponder」? – Abhinav

+0

是的,我在menuController應該顯示之前調用becomeFirstResponder。這是源於觀點,而不是風險投資。感謝您的幫助,順便說一句。 – Lizza

0

我遇到了類似的問題,試圖在自定義視圖中顯示UIMenuController。上面提到的延遲修復程序不起作用。

爲了解決這個問題,我不得不重寫添加到canBecomeFirstResponder所以它返回真實的,它是包含在我的兩個自定義視圖和的viewController。