UITextView を使用してリッチ テキスト編集を扱うアプリを作成しています。NSTextStorage を使用して、文字列の一部に新しい属性を設定します。ただし、ユーザーが新しいスタイルのテキストの文字列の末尾または文字列の途中でフォントまたはフォント サイズを変更したい場合 (つまり、渡された範囲setAttributes:range:
の長さが 0 の場合)、これは0の範囲で属性を設定できないため、実行できません。基本的に、UITextViewのカーソルの位置に新しいUIFontを設定するにはどうすればよいですか?
私の NSTextStorage サブクラスからの関連コード:
- (void)setAttributes:(NSDictionary *)attrs range:(NSRange)range
{
NSLog(@"setAttributes:%@ range:%@", attrs, NSStringFromRange(range));
[self beginEditing];
[_backingStore setAttributes:attrs range:range];
[_backingStore fixAttributesInRange:range];
[self edited:NSTextStorageEditedAttributes range:range changeInLength:0];
[self endEditing];
}