NSText applyFontTraits不适用于多行NSTextView

时间:2015-04-08 19:23:13

标签: macos cocoa appkit

尝试将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版本 - ")应该以粗体显示。然而,这不是发生的事情。相反,我看到了这个:

Screenshot of bad behaviour

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

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

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

Cocoa正好用你指定的文字加粗。