OSX NSTextField 在选择文本时重置 attributedStringValue

OSX NSTextField resets attributedStringValue when text is selected

我为 NSTextField 设置 attributedStringValue 并突出显示单词:

但是当我 select 通过光标输入文本时,所有突出显示的单词都会采用通常的样式:

我试过以下方法:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(controlTextDidSelected:) name:NSTextViewDidChangeSelectionNotification object:nil];

- (void)controlTextDidSelected:(NSNotification *)notification {
    self.attributedStringValue = _attrString;
}

但在 selecting 时仍然无法工作。

如何在文本 selected 时突出显示单词? 提前致谢。

我遇到了同样的问题。 2 件事对我有帮助:
1. 为整个属性字符串设置字体
2.允许编辑文本属性。请检查以下代码:

[self.yourTextField setAllowsEditingTextAttributes: YES];
[attrString addAttribute:NSFontAttributeName value:self.font range:NSMakeRange(0, [stringValue length])];