Может подчеркивать, но не жирный текст в NSTextView

У меня есть приложение NSDocuments & storyboard, созданное с помощью мастера в Xcode 8. В сцене ViewController я добавил NSTextView. Некоторые пункты меню отключены, такие как полужирный и курсив.

Глядя на Первого ответчика, действия, выделенные жирным шрифтом и курсивом, отсутствуют. Я должен написать эти методы сам? Это связано с тем, что цепочка респондента настроена неправильно? Почему подчеркивание отображается, но не выделено жирным шрифтом?

Редактировать: добавление изображения, показывающего, как я могу редактировать текст с помощью панели инспектора, но в меню "Формат" не отображаются ожидаемые команды.

Изображение, показывающее, как я могу изменить текст с помощью панели инспектора, но не с помощью меню, кроме подчеркивания

2 ответа

Решение

Существует историческая (?) Причина этой проблемы. Когда главное меню было создано в xib-файле, xib-файл автоматически содержал экземпляр NSFontManager, и к нему были подключены такие пункты меню, как Bold. Однако в современной раскадровке нет предустановленного экземпляра NSFontManager.

Итак, вы можете подключить их к FontManager вручную, выполнив следующие действия.

  1. Создайте обычный экземпляр объекта (синий куб) в сцене приложения.
  2. Измените класс экземпляра объекта на NSFontManager.
  3. Подключите пункты меню к addFontTrait(_:) действие fontManager. Аналогичным образом, подключите элементы "Большой" и "Меньший" к modifyFont(_:),

Вам также необходимо установить тег menuItems, однако он на самом деле уже установлен. Установите соответствующий тег также вручную, только если тег menuItem 0,

Если вы перетащите Ctrl из пункта меню на первого респондента, в представлении меню вы получите те же опции, просто нажмите Ctrl. Затем вы реализуете любую функцию, которую только что подключили. Если вы подключите File > New к newDocument и внедрите его в свой ViewController

func newDocument(_ sender: Any?){
    print("func newDocument(_ sender: Any? \(String(describing: sender)))")
}

Это будет вызвано. Первый респондент перечисляет все те же методы, что и добавленный объект с NSFontManager в качестве класса. Я не использую @IBAction перед методом, потому что я его не подключаю.

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