我可以在控制器类中更改NSString,我看到它反映在标签中。
我可以在我的控制器类中更改NSFont,我看到标签中反映了这一点。
但是...
我不能为我的生活弄清楚如何打开和关闭下划线。
如果我叫这个功能......
-(void)setUnderlineType:(NSNumber*)underline
{
NSMutableAttributedString* content = [[TheLabel attributedStringValue] mutableCopy];
[content addAttribute:NSUnderlineStyleAttributeName value:underline range:NSMakeRange(0, content.length)];
[TheLabel setAttributedStringValue:content];
}
...我得到一个下划线,但是然后忽略了绑定的字体,我得到了一些标准字体。从那时起,在我的控制器中更改NSFont对NSTextField没有明显影响。
我尝试在添加下划线之前从'内容'中删除属性...删除字体属性...但这也不起作用。
每次调用此函数时,绑定到NSTextField的字体都会被“忽略”,我看到标准字体是标准字体。
非常感谢任何指导。
答案 0 :(得分:0)
您需要设置NSFontAttributeName
以更新NSAttributedString
。
NSFont *font = ...;
NSMutableAttributedString* content = [[theLabel attributedStringValue] mutableCopy];
[content addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, content.length)];
[theLabel setAttributedStringValue:content];