Как наблюдать изменения в NSTextStorage - PullRequest
1 голос
/ 14 ноября 2011

У меня есть NSTextStorage делегат, реализующий textStorageDidProcessEditing:. К сожалению, userInfo не содержит никаких подробностей об изменениях в тексте.

Как я могу узнать, что на самом деле изменилось?

В идеале я хотел бы знать все, что отправлено на [NSLayoutManager textStorage:edited:range:changeInLength:invalidatedRange:], но достаточно отредактированного диапазона.

Ответы [ 3 ]

1 голос
/ 14 ноября 2011

Вы можете просто написать свой собственный подкласс NSLayoutManager и добавить его в NSTextSTorage, используя addLayoutManager:.

0 голосов
/ 02 августа 2013

Используйте методы получения NSTextStorage editedRange и changeInLength.

0 голосов
/ 24 апреля 2012

Вы также можете использовать KVO, чтобы наблюдать свойство символов вашего объекта NSTextStorage (или любое другое его свойство), и вы получите именно то, что изменилось в

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 
...