NSTouchBar для окна Sheet показывается модально - PullRequest
0 голосов
/ 20 октября 2018

У меня есть главное окно приложения, в котором (программно создан) 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)

показывает, что я ожидаю две кнопки сенсорной панели, но они не отображаются на сенсорной панели.Спасибо.

...