0

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

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

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

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

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

4

1 回答 1

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];
}
于 2014-04-02T20:37:15.783 回答