1

我有一个NSTextStorage代表正在执行textStorageDidProcessEditing:. 不幸的是,其中userInfo不包含有关文本更改的任何详细信息。

我怎样才能知道实际发生了什么变化?

理想情况下,我想知道发送到的所有内容[NSLayoutManager textStorage:edited:range:changeInLength:invalidatedRange:],但仅编辑范围就足够了。

4

3 回答 3

1

您可以编写自己的 NSLayoutManager 子类并将其添加到您的 NSTextSTorage 中addLayoutManager:

于 2011-11-13T22:58:15.757 回答
0

您还可以使用 KVO 来观察 NSTextStorage 对象的字符属性(或它的任何其他属性),并且您可以准确地了解更改的内容

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 
于 2012-04-24T10:30:10.190 回答
0

使用NSTextStorage 的getter 方法editedRange 和changeInLength。

于 2013-08-02T15:09:34.450 回答