我有一个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)];
但它没有用。还有另外一种方法吗?我尝试了很多东西,但仍然有问题。
答案 0 :(得分:0)
首先,避免混淆"游标"会有所帮助。如在鼠标光标中(例如指向箭头或工字梁),我认为你的意思是,"光标"如插入点或选择。
将用于新键入文本的属性存储在文本视图的typingAttributes
属性中。所以,你会这样做:
NSMutableDictionary* attributes = [textView.typingAttributes mutableCopy];
attributes[NSFontAttributeName] = [NSFont fontWithName:@"Times New Roman" size:14];
self.textView.typingAttributes = attributes;
当然,如果有选择,除了设置输入属性外,通常还需要更改所有选定范围内的字体。您可以使用rangesForUserCharacterAttributeChange
。