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 オブジェクトの characters プロパティ (またはその他のプロパティ) を観察することもでき、変更された内容を正確に取得できます。

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