【问题标题】:Using iOS 5 rich text editor使用 iOS 5 富文本编辑器
【发布时间】:2011-12-22 04:07:37
【问题描述】:

如您所知,iOS 5 中的 Mail 应用程序有一个富文本编辑器,有没有办法将此功能用于常规 UITextView ?

【问题讨论】:

标签: iphone ios xcode ipad


【解决方案1】:

iOS 5 的富文本编辑控件也出现在 iOS 4 的笔记应用中(在电脑上制作富文本笔记并同步即可查看)。

这是他们在自己的应用程序中使用的自定义 Apple 控件,但未在任何官方开发人员 API 中发布。它可能在 SDK 中的某个地方,但由于它没有记录,即使你找到并使用它,Apple 也会拒绝你的应用。

基本上,如果您想要一个富文本控件,您必须自己制作。

编辑:尝试使用这个:https://github.com/omnigroup/OmniGroup/tree/master/Frameworks/OmniUI/iPad/Examples/TextEditor/。我没用过,不知道效果如何。 (链接来自this question

【讨论】:

    【解决方案2】:

    我知道在 iOS 5 中创建富文本编辑器的两种基本方法:

    1. 使用核心文本和自定义视图。我对这种方法没有任何经验。

    2. 使用 UIWebView(而不是 UITextView)和contentEditable HTML 属性。基本思想是从您的应用程序资源目录加载自定义 HTML 文档。它需要的最低限度是:

      TEXT_PLACEHOLDER

    要初始化富文本编辑器视图: 1. 将此文件的内容加载到NSMutableString 中,并将 TEXT_PLACEHOLDER 字符串替换为您要编辑的文本。 2. 使用该 HTML 字符串将 loadHTMLString:baseURL: 消息发送到 UIWebView。

    现在你有一个 UIWebView 在 divcontentEditable 中显示你的文本。此时,您应该能够在文本上运行您的应用程序,并显示光标并能够添加/删除文本。下一步是添加富文本格式功能。这是通过一组简单的 javascript 函数调用来完成的。请参阅the Mozilla documentation on contentEditable 以获得很好的参考。您还需要向您的 HTML 模板文件添加一个 Javascript 函数,如下所示:

    function getHtmlContent() { return document.getElementById('myDiv').innerHTML; }
    

    因此,您可以使用[myWebView stringByEvaluatingJavaScriptFromString:@"getHtmlContent()"] 轻松地将编辑后的文本检索为 HTML。您还可以添加自定义上下文菜单项,就像您在问题的屏幕截图中显示的那样。

    如果您有权访问 Apple iOS 开发中心,WWDC 会议Rich Text Editing in Safari on iOS 会讨论这种方法。

    这种方法的一种变体是使用第三方富文本编辑器,例如 TinyMCE。我听说在 iOS 5 中将它集成到 UIWebView 中取得了一些成功。这再次依赖于 contentEditable 属性。

    【讨论】:

      【解决方案3】:

      这是我的实现。还没有添加 UIMenuController 功能,但计划很快就会添加。

      https://github.com/aryaxt/iOS-Rich-Text-Editor

      【讨论】:

      • 这也可以在 SWIFTUI 中使用。我是一个新手,只是想实现文本编辑器,想知道我是否可以在 Swift 中使用它。
      【解决方案4】:

      看看https://github.com/gfthr/FastTextView,它是比Omni编辑器更好的开源编辑器

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-11
        • 1970-01-01
        • 1970-01-01
        • 2011-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多