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

看起来像一个苹果错误——我提交了一份错误报告,他们说这是重复的。这是一种解决方法:将直接的 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 回答