Может подчеркивать, но не жирный текст в NSTextView
У меня есть приложение NSDocuments & storyboard, созданное с помощью мастера в Xcode 8. В сцене ViewController я добавил NSTextView. Некоторые пункты меню отключены, такие как полужирный и курсив.
Глядя на Первого ответчика, действия, выделенные жирным шрифтом и курсивом, отсутствуют. Я должен написать эти методы сам? Это связано с тем, что цепочка респондента настроена неправильно? Почему подчеркивание отображается, но не выделено жирным шрифтом?
Редактировать: добавление изображения, показывающего, как я могу редактировать текст с помощью панели инспектора, но в меню "Формат" не отображаются ожидаемые команды.
2 ответа
Существует историческая (?) Причина этой проблемы. Когда главное меню было создано в xib-файле, xib-файл автоматически содержал экземпляр NSFontManager, и к нему были подключены такие пункты меню, как Bold. Однако в современной раскадровке нет предустановленного экземпляра NSFontManager.
Итак, вы можете подключить их к FontManager вручную, выполнив следующие действия.
- Создайте обычный экземпляр объекта (синий куб) в сцене приложения.
- Измените класс экземпляра объекта на NSFontManager.
- Подключите пункты меню к
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 перед методом, потому что я его не подключаю.