Как мне установить состояние кнопки Bold для NSTextView?
У меня есть NSTextView, для которого я хочу добавить кнопки форматирования (жирный, курсив и т. Д.).
Прямо сейчас у меня есть кнопка, установленная на тип "переключение", с различными изображениями для состояний включения / выключения.
Метод toggle проверяет состояние кнопки и отправляет общий экземпляр NSFontManager.
NSFontManager *fontManager = [NSFontManager sharedFontManager];
if(self.writeBoldButton.state){
[fontManager addFontTrait:sender];
}else {
[fontManager removeFontTrait:sender];
}
Теперь мне нужно добавить код, который будет обновлять состояние кнопки всякий раз, когда пользователь меняет точку вставки или выбирает новый текст в NSTextView. Но как мне получить правильное значение?
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];
}