如何设置光标处的字体?
How do I set the font at cursor?
我有一个NSTextView,我想在光标处设置字体(光标:插入点光标,闪烁的条),意思是在光标处,字体变成Times New Roman(例子)。无论光标在哪里,我都希望字体发生变化。我试过
[self.textView.textStorage addAttributes:@{NSFontAttributeName: [NSFont fontWithName:@"Times New Roman" size:14]} range:NSMakeRange([[[self.textView selectedRanges] objectAtIndex:0] rangeValue].location, 0)];
但是没有用。还有别的办法吗?我尝试了很多东西,但我仍然遇到问题。
首先,避免将鼠标光标(例如指向箭头或工字梁)中的 "cursor" 与插入中的 "cursor" 混淆会很有帮助点或选择。
将用于新键入文本的属性存储在文本视图的 typingAttributes
属性 中。所以,你会这样做:
NSMutableDictionary* attributes = [textView.typingAttributes mutableCopy];
attributes[NSFontAttributeName] = [NSFont fontWithName:@"Times New Roman" size:14];
self.textView.typingAttributes = attributes;
当然,如果有选择,除了设置键入属性外,您通常还想更改所有选定范围内的字体。您将为此使用 rangesForUserCharacterAttributeChange
。
我有一个NSTextView,我想在光标处设置字体(光标:插入点光标,闪烁的条),意思是在光标处,字体变成Times New Roman(例子)。无论光标在哪里,我都希望字体发生变化。我试过
[self.textView.textStorage addAttributes:@{NSFontAttributeName: [NSFont fontWithName:@"Times New Roman" size:14]} range:NSMakeRange([[[self.textView selectedRanges] objectAtIndex:0] rangeValue].location, 0)];
但是没有用。还有别的办法吗?我尝试了很多东西,但我仍然遇到问题。
首先,避免将鼠标光标(例如指向箭头或工字梁)中的 "cursor" 与插入中的 "cursor" 混淆会很有帮助点或选择。
将用于新键入文本的属性存储在文本视图的 typingAttributes
属性 中。所以,你会这样做:
NSMutableDictionary* attributes = [textView.typingAttributes mutableCopy];
attributes[NSFontAttributeName] = [NSFont fontWithName:@"Times New Roman" size:14];
self.textView.typingAttributes = attributes;
当然,如果有选择,除了设置键入属性外,您通常还想更改所有选定范围内的字体。您将为此使用 rangesForUserCharacterAttributeChange
。