Objective c 如何设置光标处的字体?

Objective c 如何设置光标处的字体?,objective-c,cocoa,nstextview,Objective C,Cocoa,Nstextview,我有一个NSTextView,我想在光标处设置字体:插入点光标,闪烁条,意思是在光标处,字体变成Times New Roman示例。无论光标在哪里,我都希望字体改变。我试过了 [self.textView.textStorage addAttributes:@{NSFontAttributeName: [NSFont fontWithName:@"Times New Roman" size:14]} range:NSMakeRange([[[self.textView selectedRange

我有一个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)];

但它不起作用。还有别的办法吗?我尝试了很多方法,但仍然存在一些问题。

首先,避免混淆鼠标光标(如指向箭头或工字梁)中的光标和插入点或选择中的光标,这会很有帮助

将用于新键入文本的属性存储在文本视图的typingAttributes属性中。那么,你会做:

NSMutableDictionary* attributes = [textView.typingAttributes mutableCopy];
attributes[NSFontAttributeName] = [NSFont fontWithName:@"Times New Roman" size:14];
self.textView.typingAttributes = attributes;

当然,如果有选择,除了设置键入属性外,通常还需要更改所有选定范围中的字体。您可以使用RangeSforCharacterAttributeChange来实现这一点。

在光标处设置字体是什么意思?我现在解释得稍微好一点。这太让人困惑了。为什么要更改光标下文本的字体?@heading_to_tahiti你知道,就像在Microsoft Word中一样,当你更改字体时,你就开始键入它。我想要。你想在文本视图中添加几种字体样式吗?或者一次把所有的文字改成一种字体?我试试。我也可以试着浓缩一下。有时候我似乎工作得更好。