2015-09-20 10 views
12

を表示される私は長いです押す。私は最初に、特定のWebビューですべてのショーでメニューを表示しませんが、選択ハンドルは表示されます。 2回目に私は何らかのパーシャルwebviewを長押ししますが、期待どおりに動作します。UIMenuController編集メニューは私がのUIWebView、正常に表示される編集メニューの長押しは、唯一の第二(及び以下)回表示されたとき、私はiOSの9、中に私のアプリでそれを見つけています二度目

もう1つの奇妙な症状は、メニューが表示されるときに(たびに)ではなく、メニューから始まる画面の左側にスライドするようにすばやくアニメートすることです。これは、編集メニューが表示されたときでも表示されます。私はこれが問題に関係していると思います。

私はまだ、デバイス上のiOS 9をインストールしていないので、私は唯一のシミュレータでテストしています。 iOSの8同じメニューが期待通りに動作して

別の開発者は、あなたが画面上に一つだけUIWebVeiwを持っているときに動作している、私の周りに仕事を与えました。しかし

[[myWebView.scrollView.subviews firstObject] becomeFirstResponder]; 
[[NSOperationQueue mainQueue] addOperationWithBlock:^{ 
    [self becomeFirstResponder]; 
}]; 

、私は複数のWebViewを持っているので、それは私のための理想的なソリューションではありません。viewDidAppear(感謝チェンXian'an)でこれを入れてください。そして、それを各webviewに適用すると、最後に適用されるのですが、私はそれを適用します。

これはバグのように見える、とうまくいけば、Appleはすぐにそれを修正します、その間に、誰もが私が複数のWebViewのためにこの作品を作ることができる方法として、任意の鮮やかなアイデアを持っていますか?

答えて

16

このようにして、私は成功しました。あなたは、カスタムのUIWebViewなければならないと

- (BOOL)canBecomeFirstResponder { 
    return YES; 
} 

セカンド を書くあなたは私の場合は

+0

は私のために働きました。また、私が情報を収集するために作ったこのappleのdevフォーラムの投稿を参照してください:https://forums.developer.apple.com/thread/23353 –

2

...前私はそれが役立つだろう願っていますあなたの長押し

[yourWebView becomeFirstResponder]; 

を扱うこのメソッドを呼び出す必要があります まず UIWebViewが明らかにキーウィンドウではなかったUIWindowの問題です。私が解決したのは、webViewDidFinishLoadメソッドで[webView.window makeKeyAndVisible]への呼び出しを追加することでした。

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    // Fix 
    [webView.window makeKeyAndVisible]; 
} 
関連する問題