【问题标题】:Immediately editing a editable UIWebView立即编辑可编辑的 UIWebView
【发布时间】:2015-02-28 08:19:20
【问题描述】:

我正在使用标准机制来启用可编辑的UIWebViewdiv 标记中的contenteditable 属性)。

一切都很好 - 当我加载我的视图时,UIWebView 加载,当我点击时,我进入编辑模式。

但是,我想要做的是,当我的视图加载时,立即进入编辑模式并使光标从 div 的开头开始。

有人知道怎么做吗?我尝试使用stringByEvaluatingJavaScriptFromString 在我的HTML 中调用一个JS 方法,该方法在<div> 上执行.focus(),但它不起作用。

【问题讨论】:

    标签: ios objective-c swift uiwebview


    【解决方案1】:

    感谢 Teemu 的提示,我终于弄清楚了如何完成这项工作。我必须执行以下操作:

    首先,正如 Temmu 所说,我必须在我的 viewDidLoad 中将 keyboardDisplayRequiresUserAction 设置为 false

    其次,假设我的可编辑内容在<div id="content">...</div> 中,我在div 之后注入了以下Javascript

    <script>document.getElementById('content').focus();</script>
    

    有了这两件事,当我的视图加载时,UIWebView 立即将焦点放在div 上,然后键盘弹出。

    【讨论】:

    • 谢谢!这困扰了我整整一周。并且认为这一切都是因为一个简单的愚蠢属性,相关的 SO 答案都没有涵盖。
    【解决方案2】:

    我认为这与在 Safari 中禁用以编程方式启动键盘有关。默认情况下,UIWebView 不允许以编程方式启动键盘。但是,您可以在创建 UIWebView 时从 Swift 端启用此功能。只需将keyboardDisplayRequiresUserAction 设置为false

    更多信息请参见Apple's documentation

    注意:我没有对此进行测试,contenteditable 也可能有其他问题,但这是开发移动 Web 应用时的常见问题。

    【讨论】:

    • 谢谢!这是其中的一个重要部分。不过,我会标记您的答案并填写更完整的答案。
    猜你喜欢
    • 1970-01-01
    • 2010-09-27
    • 2015-03-21
    • 2023-03-09
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多