我有內置的UIWebView的複製和定義選項。它在iPad上工作得很好,但在iPhone上,它只在我突出顯示文本並使用字典時才起作用,第二次嘗試時,它不會顯示彈出窗口。任何想法?UIWebView和定義字典
UPDATE: 我收到以下錯誤並駁回iPhone上的字典時:爲UIFallbackPresentationViewController
不平衡通話開始/結束的外觀過渡UPDATE: 當我提出一個UIAlertView中並取消它的字典再次工作。想知道爲什麼?
我有內置的UIWebView的複製和定義選項。它在iPad上工作得很好,但在iPhone上,它只在我突出顯示文本並使用字典時才起作用,第二次嘗試時,它不會顯示彈出窗口。任何想法?UIWebView和定義字典
UPDATE: 我收到以下錯誤並駁回iPhone上的字典時:爲UIFallbackPresentationViewController
不平衡通話開始/結束的外觀過渡UPDATE: 當我提出一個UIAlertView中並取消它的字典再次工作。想知道爲什麼?
沒有看到你的代碼,這將是很難給出這個問題的答案。如果你能顯示你的邏輯,那將會容易得多。
話雖這麼說,這裏有幾個技巧,可以幫助:
viewDidAppear:animated
或viewDidLoad
,請確保您調用超級方法。創建「單一視圖應用程序」,添加「UITextView」,運行它,在文本視圖中選擇一個單詞,選擇定義並檢查調試控制檯 – 2012-10-22 14:42:19
我看到消息,但每次顯示彈出窗口。應用程序? – 2012-10-22 14:47:30
這是非常隨機的,例如,我的「UIImageView」手勢識別器不起作用,我想找出根本原因,因爲我發現使用這種「俄羅斯輪盤賭」 「issue。:) – 2012-10-22 15:09:55
目前有52 other questions計算器上提到這個錯誤..
從閱讀一些我認爲蘋果的代碼使用呼籲presentModalViewController:
前的實際字典視圖是滿載。
我認爲這僅僅是蘋果公司已解決,Rudolf Adamkovic's sample做了一個錯誤明確:
選擇定義
調試控制檯告訴的你是這樣的:
Unbalanced calls to begin/end appearance transitions for
<_UIFallbackPresentationViewController: 0x74c1660>
我提交的bug在:https://bugreport.apple.com
感謝bug報告。 :-)稍微修改:在stackoverflow上還有52個其他問題討論了不平衡調用問題,其中大部分問題通過更正代碼來修復等等。但是,只有兩個問題(根據我的搜索)與神祕的_UIFallbackPresentationViewController消息討論這個特定的問題。這兩個問題都沒有解決方案。 – 2012-10-25 17:38:17
這就是爲什麼我報告了錯誤。我會期待蘋果的反應。 – Tieme 2012-10-25 18:06:12
Apple:「爲了進一步調查此問題,工程部門要求提供以下信息:請附上一個示例項目,以說明您正在報告的問題。」 - 我這樣做了:) – Tieme 2012-12-04 23:33:29
我能夠重現錯誤(顯示了在控制檯),但對我來說,每次都會有popover。所以我不會擔心,因爲它似乎沒有造成任何崩潰。
唯一的「解決方法」是禁用/替換「定義」菜單項。但要做到這一點的唯一方法是通過編寫一個私有類的類別(這是禁止的):
@interface UIWebBrowserView : UIView
@end
@interface UIWebBrowserView (Add)
@end
@implementation UIWebBrowserView (Add)
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
if(action == @selector(_define:))
return NO;
return [super canPerformAction:action withSender:sender];
}
@end
這樣做有沒有寫一個類(法混寫)的更「聰明」的方式,但他們更危險。
如果它的工作,我會讓它獨自一人。我啓用了ARC,所以我不確定這是否有所作爲。
我正在建立一個閱讀應用程序,定義是必須的(尤其是對於外國讀者)。 – 2012-11-23 15:18:02
現在,這是我如何解決它。 在字典出現後,打印出[UIApplication sharedApplication] .keyWindow,以找出哪個子視圖被賦予焦點。
在該子視圖,用於UIWindowDidBecomeKeyNotification
並註冊。當得到通知貼出,叫下面的方法: -
- (void) makeKeyWindow {
AppDelegate * appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate.window makeKeyAndVisible];
}
即使這樣,我仍然看到錯誤,UIMenu &字典都繼續按預期工作。
我認爲這個警告消息表明UIFallbackPresentationViewController沒有得到完全實例化之前被解僱的其他視圖控制器。 – 2012-01-06 02:55:03
問題是我的代碼中甚至沒有UIFallbackPresentationViewController,我認爲這是蘋果的 – adit 2012-01-06 03:09:48
您是否曾經找出導致此問題的原因和/或解決方案? – 2012-09-14 17:17:38