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 已将您指定的文本加粗。
我在尝试将 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 已将您指定的文本加粗。