macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

textStorage:edited:range:changeInLength:invalidatedRange:

テキストストレージでテキストの一部のためにシンボルとレイアウト情報を無効にする
-(void)textStorage:(NSTextStorage *)aTextStorage:
                  edited:(unsigned)mask:
                  range:(NSRange)range:
                  changeInLength:(int)lengthChange:
                  invalidatedRange:(NSRange)invalidatedCharRange:

解説

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

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

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

返り値

( void )

なし

引数

( NSTextStorage * )aTextStorage

テキストストレージ

( unsigned )mask

マスク

( NSRange )range

範囲

( int )lengthChange

変更の長さ

( NSRange )invalidatedCharRange

無効にする範囲

フレームワーク

ApplicationKit

クラス

NSLayoutManager

Instance Methods

使用可能

10.0

参照

- invalidateLayoutForCharacterRange:isSoft:actualCharacterRange:

例文

//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];

}