iOS - 重写 UITextView 方法?
我想重写将文本绘制到 UITextView 中的方法。正确的覆盖方法是什么?
I want to override the method that draws the text into a UITextView. What is the correct method to override?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
2016-02-09 更新:这个答案现在是错误的(自 iOS 6 以来一直如此)。现在,您可以通过将 NSAttributedString 设置为
attributedText
属性来使用 UITextView,而不是将普通的 NSString 设置为text
属性。相关的较新问题: https://stackoverflow.com/a/14231900/458205
原始答案
无法为 UITextView 中的不同单词设置不同的颜色。
UITextView 有多种替代品,支持富文本编辑(如下所列)。
但是,如果您仅想在 UITextView 中为不同的文本提供不同的颜色(例如语法突出显示),最简单的方法就是使用 UITextView 本身进行编辑,并使用显示彩色文本的 CoreText 覆盖层进行编辑。
https://github.com/SquaredTiki/EditableCoreTextOverlay
Update 2016-02-09: This answer is now wrong (and has been since iOS 6). You can now use UITextView by setting an NSAttributedString to the
attributedText
property instead of setting a normal NSString to thetext
property.Relevant newer question: https://stackoverflow.com/a/14231900/458205
Original Answer
There's no way to set different colours for different words in a UITextView.
There are multiple replacements for a UITextView which support rich text editing (listed bellow).
However if you only want to give different text different color's in a UITextView (like syntax highlighting) the easiest thing to do is just use a UITextView itself for the editing with a CoreText overlay displaying the coloured text.
https://github.com/SquaredTiki/EditableCoreTextOverlay
目前,
UITextView
中的多种颜色是不可能的。您只能设置一种文本颜色。如果您需要多种文本颜色,唯一的方法是在
UIWebView
中加载 RTF 文件,但这不允许编辑。也许在 iOS 5 中,
UITextView
将会支持 RTF。Multiple colors in a
UITextView
is not possible at this point in time. You can set one text color only.If you need multiple text colors, the only way is loading a RTF file in a
UIWebView
, but that doesn't allow editing.Maybe in iOS 5 there'll be RTF support for
UITextView
.