Cocoa 如何为NSTextView设置粗体格式按钮的状态?

Cocoa 如何为NSTextView设置粗体格式按钮的状态?,cocoa,nstextview,nsfontmanager,Cocoa,Nstextview,Nsfontmanager,我有一个NSTextView,我想为它添加格式按钮(粗体、斜体等) 现在,我有一个按钮设置为“切换”类型,不同的图像用于打开/关闭状态 toggle方法检查按钮的状态并发送NSFontManager的共享实例 NSFontManager *fontManager = [NSFontManager sharedFontManager]; if(self.writeBoldButton.state){ [fontManager addFontTrait:send

我有一个NSTextView,我想为它添加格式按钮(粗体、斜体等)

现在,我有一个按钮设置为“切换”类型,不同的图像用于打开/关闭状态

toggle方法检查按钮的状态并发送NSFontManager的共享实例

    NSFontManager *fontManager = [NSFontManager sharedFontManager];
       if(self.writeBoldButton.state){
        [fontManager addFontTrait:sender];
       }else {
        [fontManager removeFontTrait:sender];
       }

现在,我需要添加代码,每当用户更改插入点或在NSTextView中选择新文本时,都会更新按钮的状态。但是如何得到正确的值呢

在输入问题后,我在这方面做了更多的工作,并提出了一个有效的解决方案。下面是我最终包含在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];
}
请查看此代码=>