NSMutableAttributedString
定义了两种字符串替换方法:
func replaceCharacters(in range: NSRange,
with str: String)
和
func replaceCharacters(in range: NSRange,
with attrString: NSAttributedString)
我创建了一个子类,NSTextStorage
它又是NSMutableAttributedString
. 在那个子类中,我覆盖了上述两种方法。
令我惊讶的是,当我在文本视图中键入或粘贴某些内容时,永远不会调用后一种方法(传递属性替换字符串)。它只是每次调用的纯字符串替换方法。
这引出了一个问题:
这两种方法实际上是根据哪些规则调用的当用户在文本视图中编辑文本时,
(我需要在我的文本存储中执行不同的操作,具体取决于属性替换字符串是否包含特定类型的文本附件。但是如果从不调用属性字符串的替换方法,我看不出如何进行这种区分。 )