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 に答える