Ios textView.TypingAttribute不适用于预测
我有一个文本视图,其中填充了一些默认的蓝色文本,现在我的目标是,无论我在文本中做什么编辑,它都应该是红色的。我正在使用Ios textView.TypingAttribute不适用于预测,ios,swift3,attributes,uitextview,xcode8,Ios,Swift3,Attributes,Uitextview,Xcode8,我有一个文本视图,其中填充了一些默认的蓝色文本,现在我的目标是,无论我在文本中做什么编辑,它都应该是红色的。我正在使用texView.typingAttributes来实现这一点,它几乎可以很好地工作,除非我从任何蓝色的单词开始使用预测或自动更正,在这种情况下,预测或自动更正的单词仍然保持蓝色。如果我在蓝色区域之外使用预测,效果很好。还有什么我应该做的预测吗?下面是我目前用来实现这一目标的代码 func textView(_ textView: UITextView, shouldChangeT
texView.typingAttributes
来实现这一点,它几乎可以很好地工作,除非我从任何蓝色的单词开始使用预测或自动更正,在这种情况下,预测或自动更正的单词仍然保持蓝色。如果我在蓝色区域之外使用预测,效果很好。还有什么我应该做的预测吗?下面是我目前用来实现这一目标的代码
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
textView.typingAttributes[NSForegroundColorAttributeName] = UIColor.red
return true
}
要进行更正,需要为字符串的选定范围应用颜色属性属性。它现在正在工作,添加了如下代码:
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
textView.typingAttributes[NSForegroundColorAttributeName] = UIColor.red
let colorAttribute = [NSForegroundColorAttributeName: UIColor.red]
textView.textStorage.addAttributes(colorAttribute, range: range)
return true
}
这几乎是可行的,但问题是,如果您在两者之间选择一个蓝色文本,并使用预测,光标就会移动到其他地方。另外,在蓝色文本上选择和粘贴也不起作用。@sonu,但正如你所问:如果我从任何蓝色的单词开始使用预测或自动更正,在这种情况下,预测或自动更正的单词仍然保持蓝色,因为颜色问题已经解决。更正后的单词变为红色而不是蓝色。是的,但如果我使用此解决方案,它会产生一个以前没有的新的光标位置问题。@sonu,解决了光标定位问题并更新了相同的代码。很好用。请随时询问是否有任何疑问。。。