我正在编写一个使用 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];
}