如何在iPhone中进行语法高亮显示UITextView
,特别是语法高亮显示(和检测)?Objective-C
我的一些想法如何做到这一点:
NSAttributedString
.现在可在iOS 3.2及更高版本中使用.但是如何将其NSAttributedString
放入UITextView?
UIWebView
.在用户完成编辑时叠加它并使用CSS样式表为文本着色.但是我怎么做到这一点UIWebView
,给它文本然后着色呢?
Max Seeleman.. 74
更新:从iOS 7和TextKit开始,语法高亮变得简单易行.请看这里的介绍(由我).
假设你想要一个可编辑的组件,那就没有太多希望了.给出快速概述,以确保我涵盖所有内容:
我们在这里.两个缺乏中心功能的全功能组件和两个缺少缺失链接的部分解决方案.以下是我可以提出的所有可行方法:
让用户编辑未设置 在 提交一个错误并等待一个不错的公共API(我的个人方法). 说服苹果公司再次允许私人API,并搞乱
Omni Group采用了第二种方法并创建了可编辑的文本视图.您可以在OmniUI框架中找到它.但是,这种实现远非完美.(至少是几个月前我上次检查的时候).他们努力尝试但仍无法在用户交互中达到Apples的完美.Apple必须投入至少几个人年才能完成与文本选择和编辑的UI交互.没有什么可以在家里完成,甚至对于作为全方位集团的公司来说也是如此. 所有这一切都有一个有趣的方面:iWork.Apple声称不使用任何私有API.但文本选择与操作系统中的相同.所以他们必须将框架源复制到应用程序中.非常诚实的方法;) 更新:从iOS 7和TextKit开始,语法高亮变得简单易行.请看这里的介绍(由我). 假设你想要一个可编辑的组件,那就没有太多希望了.给出快速概述,以确保我涵盖所有内容:
我们在这里.两个缺乏中心功能的全功能组件和两个缺少缺失链接的部分解决方案.以下是我可以提出的所有可行方法:
让用户编辑未设置 在 提交一个错误并等待一个不错的公共API(我的个人方法). 说服苹果公司再次允许私人API,并搞乱
Omni Group采用了第二种方法并创建了可编辑的文本视图.您可以在OmniUI框架中找到它.但是,这种实现远非完美.(至少是几个月前我上次检查的时候).他们努力尝试但仍无法在用户交互中达到Apples的完美.Apple必须投入至少几个人年才能完成与文本选择和编辑的UI交互.没有什么可以在家里完成,甚至对于作为全方位集团的公司来说也是如此. 所有这一切都有一个有趣的方面:iWork.Apple声称不使用任何私有API.但文本选择与操作系统中的相同.所以他们必须将框架源复制到应用程序中.非常诚实的方法;) 从iOS 5开始,您可以使用UIWebView并 我唯一的问题是你似乎没有拼写检查.UITextView
:纯文本,没有(公共)方式.但可编辑.没有机会改变任何东西,没有机会获得几何等.在内部使用Web视图.每个段落都是一个UIWebView
:html,所以它可以设置风格,嵌入图像等.我猜(没有调查)这是前面提到的三个20 UI使用.问题:无法编辑.没有(公共)方式.您可以在没有私有API的情况下获取选择,访问DOM等等,并且令人头疼.编辑将像UITextView一样工作,但需要一个全新的头痛水平.仍然:私人.CoreText
框架:自iOS 3.2以来非常非常好的渲染引擎.但就是这样.可以直接布局和渲染NSAttributesString
.但是,没有用户交互.没有文字选择,没有文字输入,没有拼写检查,没有替换,没有高亮,没有不,不,没有.只是渲染.还有很多工作要在具有长文本的旧设备上快速完成.UITextInput
协议:允许与键盘交互并获取文本输入.还具有基本文本替换功能.问题:仅输入文本,记录错误.没有文字选择等(见上文).UITextView
样式并显示在a中设置样式的内容UIWebView
.对于后者,你可以使用Three20的东西.CoreText
和之间构建缺失的链接UITextInput
.这包括但不限于文本选择,突出显示,背景颜色,文本存储和管理,效率,拼写检查等.其中一些由系统框架提供,但仍需要大量集成.UItextView
s DOM.
1> Max Seeleman..:
UITextView
:纯文本,没有(公共)方式.但可编辑.没有机会改变任何东西,没有机会获得几何等.在内部使用Web视图.每个段落都是一个UIWebView
:html,所以它可以设置风格,嵌入图像等.我猜(没有调查)这是前面提到的三个20 UI使用.问题:无法编辑.没有(公共)方式.您可以在没有私有API的情况下获取选择,访问DOM等等,并且令人头疼.编辑将像UITextView一样工作,但需要一个全新的头痛水平.仍然:私人.CoreText
框架:自iOS 3.2以来非常非常好的渲染引擎.但就是这样.可以直接布局和渲染NSAttributesString
.但是,没有用户交互.没有文字选择,没有文字输入,没有拼写检查,没有替换,没有高亮,没有不,不,没有.只是渲染.还有很多工作要在具有长文本的旧设备上快速完成.UITextInput
协议:允许与键盘交互并获取文本输入.还具有基本文本替换功能.问题:仅输入文本,记录错误.没有文字选择等(见上文).UITextView
样式并显示在a中设置样式的内容UIWebView
.对于后者,你可以使用Three20的东西.CoreText
和之间构建缺失的链接UITextInput
.这包括但不限于文本选择,突出显示,背景颜色,文本存储和管理,效率,拼写检查等.其中一些由系统框架提供,但仍需要大量集成.UItextView
s DOM.
2> mxcl..:contenteditable="true"
在其中设置div.这使得UIWebView打开键盘并允许用户直接将文本输入到DOM中.然后,您可以编写一个执行语法突出显示的webapp.您可以使用自定义URL与cocoa应用程序进行通信.
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有