我有一个实现textStorageDidProcessEditing:的NSTextStorage委托。不幸的是,userInfo不包含有关文本更改的任何细节。
我如何才能找出实际发生了什么变化?
理想情况下,我想知道发送到[NSLayoutManager textStorage:edited:range:changeInLength:invalidatedRange:]的所有内容,但仅编辑过的范围就足够了。
发布于 2011-11-14 06:58:16
您可以编写自己的NSLayoutManager子类,并使用addLayoutManager:将其添加到您的NSTextSTorage中。
发布于 2012-04-24 18:30:10
您还可以使用KVO观察NSTextStorage对象的characters属性(或它的任何其他属性),这样就可以准确地看到
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 发布于 2013-08-02 23:09:34
使用NSTextStorage的getter方法editedRange和changeInLength。
https://stackoverflow.com/questions/8114481
复制相似问题