NSText applyFontTraits 不适用于多行 NSTextView

NSText applyFontTraits doesn't work on multiline NSTextView

我在尝试将 NSTextView 小部件内的部分文本的字体样式更改为粗体时遇到了一些问题。文本跨越多行。这是我的代码:

[tv setString:@"\nTest Prog 1.0\n-Mac OS version -\nRelease date: 08.04.2015"];
NSMutableAttributedString *text = [tv textStorage];
[text applyFontTraits:NSBoldFontMask range:NSMakeRange(15,32)];

如您所见,我传递的范围是 15 到 32,这意味着第二行(“-Mac OS version-”)应该以粗体显示。然而,事实并非如此。相反,我看到了这个:

如您所见,第三行也以粗体打印,但我不明白为什么会这样。我在这里做错了什么还是 Mac OS 本身的错误?

10.6(我的开发系统)和 10.10 Yosemite(我的测试系统)确认了该行为。

有什么想法吗?

NSMakeRange()的第二个参数不是范围的结束索引,而是长度。您指定的范围从索引 15 开始,运行 为 32 个字符。

Cocoa 已将您指定的文本加粗。