我有一个NSTextView,我想添加格式按钮(粗体,斜体等)。
现在,我有一个按钮设置为"切换"类型,具有开/关状态的不同图像。
toggle方法检查按钮的状态并发送NSFontManager的共享实例。
NSFontManager *fontManager = [NSFontManager sharedFontManager];
if(self.writeBoldButton.state){
[fontManager addFontTrait:sender];
}else {
[fontManager removeFontTrait:sender];
}
现在我需要添加代码,以便在用户更改插入点或在NSTextView中选择新文本时更新按钮的状态。但是我如何获得正确的价值呢?
答案 0 :(得分:1)
在输入问题后我对此进行了一些更多的工作,并提出了一个有效的解决方案。这是我最终编写的代码,包括NSTextView的委托方法,textViewDidChangeTypingAttributes:(NSNotification *)aNotification。
NSFont *font = [[[self manuscriptTextView]typingAttributes]objectForKey:@"NSFont"];
NSFontManager *fontManager = [NSFontManager sharedFontManager];
if ([fontManager traitsOfFont:font]==NSFontBoldTrait)
{
[[self writeBoldButton]setState:1];
}else{
[[self writeBoldButton]setState:0];
}