NSLayoutManager:textStorage:edited:range:changeInLength:invalidatedRange:
Home 目次>ApplicationKit>NSLayoutManager このサイトはこちらに移転しました。

textStorage:edited:range:changeInLength:invalidatedRange:

テキストストレージでテキストの一部のためにシンボルとレイアウト情報を無効にする


-(void) textStorage:(NSTextStorage *)aTextStorage
   edited:(unsigned)mask
   range:(NSRange)range
   changeInLength:(int)lengthChange
   invalidatedRange:(NSRange)invalidatedCharRange


【返り値】
   voidなし
【パラメータ】
   aTextStorageテキストストレージ
   maskマスク
   range範囲
   lengthChange変更の長さ
   invalidatedCharRange無効にする範囲


【解説】

テキストストレージでテキストの一部のためにシンボルとレイアウト情報を無効にします。
このメッセージはNSTextStrage内の文字や属性が変更された時にNSTextStrageのprocessEditingメソッドによって送信されます。

オプション 意味
●NSTextStorageEditedAttributes 属性が追加、削除、変更
●NSTextStorageEditedCharacters 文字が追加、削除、変更

このメッセージは連続的に送られるためNSLayoutManagerがaTextStorageの指定範囲のテキストストレージの編集をしてはいけません。編集を行ってしまうと引数値が不正な値になります。



【例文】


//NSTextStrage に変更があった時に NSTextStrage processEditing から呼び出される
- ( void )textStorage:(NSTextStorage *)str edited:( unsigned )editedMask range:(NSRange)newCharRange changeInLength:( int )delta invalidatedRange:(NSRange)invalidatedCharRange
{
NSLog(
@"textStorage range(%u,%u) , delta %d , invalidatedCharRange(%u,%u)" ,newCharRange.location,newCharRange.length,delta,invalidatedCharRange.location,invalidatedCharRange.length);
switch (editedMask) {
case NSTextStorageEditedAttributes:
NSLog(
@"NSTextStorageEditedAttributes" );
break ;
case NSTextStorageEditedCharacters:
NSLog(
@"NSTextStorageEditedCharacters" );
break ;
default :
NSLog(
@"default" );
break ;
}


[
super textStorage:str edited:editedMask range:newCharRange changeInLength:delta invalidatedRange:invalidatedCharRange];

}


(C) 2000-2009 Satoshi Oomori.
[Apple]

Google
Webwww.oomori.com
Apple_Store_40x120

[ad:Usual day in Japan]

この記事を評価してください。 

良い 

間違いがある 説明がわかりにくい 例文がわかりにくい  

Home 目次>ApplicationKit>NSLayoutManager
修正日2007.4.12