尝试将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版本 - ")应该以粗体显示。然而,这不是发生的事情。相反,我看到了这个:
正如您所看到的,第三行也以粗体显示,但我不明白为什么会这样。我在这里做错了还是Mac OS本身的错误?
行为通过10.6(我的开发系统)和10.10 Yosemite(我的测试系统)确认。
有什么想法吗?
答案 0 :(得分:1)
NSMakeRange()
的第二个参数不是范围的结束索引,而是长度。您已指定从索引15开始并运行32个字符的范围。
Cocoa正好用你指定的文字加粗。