如何观察对NSTextStorage的更改
问题描述:
我有一个NSTextStorage
授权textStorageDidProcessEditing:
。不幸的是,userInfo
没有包含任何关于文本更改的细节。如何观察对NSTextStorage的更改
我如何知道实际上发生了什么变化?
理想情况下,我想知道发送到[NSLayoutManager textStorage:edited:range:changeInLength:invalidatedRange:]
的所有内容,但编辑后的范围会足够好。
答
您可以使用addLayoutManager:
编写自己的NSLayoutManager子类并将其添加到NSTextSTorage中。
答
你也可以使用国际志愿者组织观察您NSTextStorage对象的人物属性(或者任何其他属性),你会得到什么是
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
答
使用NSTextStorage的getter方法editedRange和changeInLength改变。