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".

Логическое значение, указывающее, разрешает ли получатель изменять шрифты в модальных окнах и панелях.Документация:

Другие вопросы по тегам