例:私のアプリプロ卓球スコアボードに二つのタッチバーボタンで両サイドの点数を追加機能がある。以下は関連のコード。
タッチバーのIdentifierの定義:
#if targetEnvironment(macCatalyst) import UIKit extension NSTouchBarItem.Identifier { static let addLeft = Self.init("addLeft") static let addRight = Self.init("addRight") } #endif
ViewControllerにタッチバーの定義:
class GameViewController: UIViewController { ... #if targetEnvironment(macCatalyst) override func makeTouchBar() -> NSTouchBar? { let touchBar = NSTouchBar() touchBar.delegate = self touchBar.defaultItemIdentifiers = [.addLeft, .addRight] return touchBar } #endif }
タッチバー各ボタンの定義:
#if targetEnvironment(macCatalyst) extension GameViewController: NSTouchBarDelegate { func touchBar(_ touchBar: NSTouchBar, makeItemForIdentifier identifier: NSTouchBarItem.Identifier) -> NSTouchBarItem? { switch identifier { case .addLeft: let item = NSButtonTouchBarItem(identifier: identifier, title: "Left+1", target: self, action: #selector(addLeft)) return item case .addRight: let item = NSButtonTouchBarItem(identifier: identifier, title: "Right+1", target: self, action: #selector(addRight)) return item default: return nil } } @objc private func addLeft() { ... } @objc private func addRight() { ... } } #endif