1

ユーザーが編集できる UIWebview があります (iOS 6 以降)。次のように、webView には userInteractionEnabled YES があり、HTML には contenteditable TRUE があります。

- (void)configureView // called from viewDidLoad and setDetailItem:
{
    NSString *htmlString = @""
    "<html>"
    "<body>"
    "<div contenteditable=\"true\">"
    "1: Click on this line (keyboard appears)<p>"
    "<textarea>2: Clicking in this textarea causes crash</textarea><p>"
    "</div>"
    "</body>"
    "</html>";

    [myWebView loadHTMLString:htmlString baseURL:nil];

    myWebView.userInteractionEnabled = YES;
}

テキスト行をクリックすると、キーボードが表示されます。次に、テキストエリアをクリックすると、Apple のコードのどこかでクラッシュが発生します。

-[UITextInteractionAssistant(UITextInteractionAssistant_Internal) oneFingerTap:] + 2204

およびこのコンソール出力 (NSZombieEnabled 提供):

*** -[UITextSelection caretRect]: 割り当て解除されたインスタンス 0x746ae90 に送信されたメッセージ

私は何を間違っていますか?

(その他の情報: ストーリーボードと ARC を使用して、新しいユニバーサル プロジェクトに UIWebView を読み込んでいます。iPhone/iPad シミュレーターと iPhone 3GS 6.1.3 でクラッシュが発生します。)

4

2 に答える 2

1

Apple のバグのようです -- バグ レポートを提出したところ、重複しているとのことでした。回避策は次のとおりです。ストレート HTML テキストとテキストエリアを別々の div タグ内に配置します。

于 2013-08-01T09:36:05.130 に答える
0

「UITextSelection caretRectでのUIWebview contenteditableクラッシュ」という同じ問題に直面していました。そして私は解決策を得ました。解決策:-Textarea にはデフォルトで contenteditable=true のプロパティがあるため、追加する必要はありません。以下のコードを追加してください example:- "<div contenteditable=\"true\">" "1: Click on this line (keyboard appears)<p>""</div>" <div> "<textarea>2: Clicking in this textarea causes crash</textarea><p>"</div>

于 2015-08-18T12:40:06.730 に答える