У меня есть главное окно приложения, в котором (программно создан) TouchBar работает нормально.Я делаю открытое окно листа из основного и хочу настроить TouchBar для него.Код находится в его ViewController и фактически выполняется, но на сенсорной панели ничего не отображается.Должен ли я как-то ссылаться на TouchBar, созданный в главном окне?
Вот код, который у меня во ViewController показан в виде модального листа:
@available(OSX 10.12.2, *)
override func makeTouchBar() -> NSTouchBar? {
let touchBar = NSTouchBar()
touchBar.customizationIdentifier = NSTouchBar.CustomizationIdentifier("com.dalon.Cipher1")
touchBar.delegate = self
touchBar.defaultItemIdentifiers = [.saveButton, .closeButton]
touchBar.customizationAllowedItemIdentifiers = [.saveButton, .closeButton]
touchBar.customizationRequiredItemIdentifiers = [.saveButton, .closeButton]
return touchBar
}
@available(OSX 10.12.2, *)
func touchBar(_ touchBar: NSTouchBar, makeItemForIdentifier identifier: NSTouchBarItem.Identifier) -> NSTouchBarItem? {
switch identifier {
case NSTouchBarItem.Identifier.saveButton:
let button = NSButton(title: "Save", target: self, action: #selector(save))
let customTouchBarItem = NSCustomTouchBarItem(identifier: identifier)
customTouchBarItem.view = button
return customTouchBarItem
case NSTouchBarItem.Identifier.closeButton:
let button = NSButton(title: "Cancel", target: self, action: #selector(cancel))
let customTouchBarItem = NSCustomTouchBarItem(identifier: identifier)
customTouchBarItem.view = button
return customTouchBarItem
default:
return nil
}
Если я делаю
print(touchBar?.defaultItemIdentifiers)
показывает, что я ожидаю две кнопки сенсорной панели, но они не отображаются на сенсорной панели.Спасибо.