UITextView似乎使用了其中的第一个字符,将属性的属性作为后面任何文本的默认属性。我尝试过使用typingAttributes,但只有在键入时才能使用(粘贴和双击空格键是我很快会解释的问题)。
如果我创建提及作为第一行文本然后粘贴文本,则粘贴的文本将具有提及属性。
但是,如果我添加了文本(默认属性),然后提及,然后粘贴文本,粘贴的文本将具有默认属性。
我已经尝试重置打字属性,如果您在提及后进行输入,但无论何时粘贴或双击空格键并添加.
,它都将采用任何属性。第一个角色是。
有没有办法解决这个问题?可能是一个NSAttributedString函数来覆盖UITextView上的任何方法/ var,我错过了哪些可能对我有帮助?
首先编辑:
捕获
中长于1个字符的文字func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange,
replacementText text: String) -> Bool
允许我返回false并自行替换文本。
然而,我无法尝试将更改从两个空格捕获到.
如果有人知道如何正确捕获它,那将非常有帮助。
答案 0 :(得分:1)
正如我在编辑中所说的那样用粘贴文本来解决我的问题
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange,
replacementText text: String) -> Bool
并捕获1个字符以上的文本并使用适当的属性将其插入并返回false。
至于空格键的双击我的解决方案(目前至少)是检查
public func textViewDidChange(_ textView: UITextView)
并查看(根据selectedRange位置和两个字符返回)我们现在是否有句号和空格。如果我们这样做,我会为该位置设置默认文本属性。这可能对每个人都不起作用,因为可能存在不应将句点和空格设置为默认值的情况。目前对我来说似乎不是问题,但如果是,我会在这里发布我的工作。