NSTextView не изменяет размер шрифта или цвет из NSFontPanel
Я создал базовый NSTextView, я выбрал следующие опции в Интерфейсном Разработчике:
- Редактирование
- Выбор
- Полевой редактор
- Богатый текст
- расстегивать
- Графика
- Несмежный макет
- Панель шрифтов
- Правитель
- Инспектор Бар
Я установил NSViewController, чтобы быть делегатом NSTextView, и единственное другое, что я сделал для этого NSTextView, это разрешил вставку вкладок и новых строк (приняв Первый респондент):
func textView(_ textView: NSTextView, doCommandBy commandSelector: Selector) -> Bool {
if commandSelector == #selector(insertNewline(_:)) {
textView.insertNewlineIgnoringFieldEditor(self)
return true
} else if commandSelector == #selector(insertTab(_:)) {
textView.insertTabIgnoringFieldEditor(self)
return true
} //else if commandSelector == #selector(changeColor(_:)) {
//textView.setTextColor(NSFontPanel.colo, range: <#T##NSRange#>)
//}
return false
}
Когда я пытаюсь использовать команды из панели шрифтов + панель инспектора, все команды работают нормально, кроме изменения размера или цвета шрифта, есть что-то, что может быть не так? Или мне нужно сделать дополнительные привязки / делегаты и т.д., чтобы это работало?
Это странно, потому что, если я изменяю сам шрифт (выделенного текста) или вес, он работает нормально (кодирование не требуется).
Обновить
Я нашел корень проблемы, вызвавшей это. Я отображаю TextView в ViewController, который отображается с помощью модального перехода. Если я изменю с модального на шоу, размер и цвет будут работать нормально. Также нет необходимости в дополнительных командах для вставки новой строки и табуляции.
Есть ли причина, почему это так? Есть ли какие-либо настройки, которые нужно сделать, чтобы избежать этого? И почему представление контроллера представления влияет на поведение панели шрифтов?
0 ответов
NSFontPanel имеет свойство worksWhenModal, которое звучит так, как если бы оно могло иметь значение "false".
Логическое значение, указывающее, разрешает ли получатель изменять шрифты в модальных окнах и панелях.Документация: