Я хотел переместить виджет сенсорной панели таймера на панель управления справа. Я нашел код, который может сделать это через какой-то частный API, но я не могу выяснить, как подключить к нему мой windowController.
Вот мой оконный контроллер
import Cocoa
class WindowController: NSWindowController {
@IBOutlet var touchButton: NSButton!
@IBOutlet var touchbar: NSTouchBar!
var delegate: NSTouchBarDelegate?
var timer = Timer();
override func windowDidLoad() {
super.windowDidLoad()
// Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
}
@IBAction func startTimer(_ sender: Any) {
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(self.updateTimer), userInfo: nil, repeats: true);
}
@objc func updateTimer() {
touchButton.title = TimeHandler().convertTimeDiffToString(timeDiff: TimeHandler().calcTimeDiff(currentTime: TimeHandler().getCurrentTimeInSeconds()));
}
}
И это код, который может переместить мою кнопку для управления полосой, но я не могу получить доступ к сенсорной панели из этого класса
import Cocoa
class TouchBarController: NSObject, NSTouchBarDelegate {
static let shared = TouchBarController()
let touchBar = NSTouchBar()
func setupControlStripPresence() {
DFRSystemModalShowsCloseBoxWhenFrontMost(false)
let item = NSCustomTouchBarItem(identifier: touchButton)
item.view = NSButton(image: #imageLiteral(resourceName: "Strip"), target: self, action: #selector(touchbar))
NSTouchBarItem.addSystemTrayItem(item)
DFRElementSetControlStripPresenceForIdentifier(touchButton, true)
}
}