使用iOS 5富文本编辑器

时间:2011-11-04 16:05:32

标签: iphone ios xcode ipad

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

enter image description here

4 个答案:

答案 0 :(得分:25)

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

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

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

    < div contentEditable> TEXT_PLACEHOLDER< / div>

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

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

    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属性。

答案 1 :(得分:2)

这是我的实施。仍然没有添加UIMenuController功能,但它计划很快添加。

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

答案 2 :(得分:1)

iOS 5富文本编辑控件也出现在iOS 4的笔记应用程序中(在计算机上制作一个富文本笔记并同步它以查看)。

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

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

修改:尝试使用此代码:https://github.com/omnigroup/OmniGroup/tree/master/Frameworks/OmniUI/iPad/Examples/TextEditor/。我没有用它,所以我不知道它会有多好用。 (来自this question的链接)

答案 3 :(得分:0)

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

相关问题