3

NSPopoverタッチバーのサポートを追加したいウィンドウがあります。標準のタッチバー サポートを実装できましたがNSWindow、ポップオーバーに対して同じ手順を実行しても、xCode タッチバー シミュレーターにタッチバー項目が表示されません。

私はととして提示されている を実装makeTouchbarNSTouchBarDelegateています。デリゲート関数が呼び出されていますが、タッチバーには何も表示されません (以下のコード ブロックでは、タッチバーとヒントの両方がログに記録されています)。NSViewControllerNSPopovermakeTouchBar

キーボード フォーカスがあっても、NSPopover ウィンドウがアクティブなアプリとしてタッチバーをトリガーしないことが心配です。ウィンドウのタッチバー項目を表示するにはどうすればよいNSPopoverですか?

//MARK: Touch bar
@available(OSX 10.12.1, *)
override func makeTouchBar() -> NSTouchBar? {
    Swift.print("Touchbar.")

    let touchBar                        = NSTouchBar()
    touchBar.delegate                   = self
    touchBar.customizationIdentifier    = .touchBar
    touchBar.defaultItemIdentifiers     = [.tbHint, .colourC] 

    return touchBar

}

@available(OSX 10.12.1, *)
extension RememberViewController: NSTouchBarDelegate {

    func touchBar(_ touchBar: NSTouchBar, makeItemForIdentifier identifier: NSTouchBarItemIdentifier) -> NSTouchBarItem? {

        switch identifier{
        case NSTouchBarItemIdentifier .tbHint:
            Swift.print("hint")
            let buttonView  = NSCustomTouchBarItem(identifier: identifier)
            let button      = NSButton(title: "Hint", target: self, action: #selector(showHint))
            buttonView.view = button
            return buttonView

        case NSTouchBarItemIdentifier .colourC:
            let colorPicker: NSColorPickerTouchBarItem
            colorPicker = NSColorPickerTouchBarItem.colorPicker(withIdentifier: identifier)

            colorPicker.customizationLabel = "Color Picker"
            colorPicker.target = self
            colorPicker.action = #selector(showHint)

            return colorPicker

        default:
            return nil
        }


    }
}
4

2 に答える 2