Я делаю приложение для сенсорной панели, чтобы показать время, батарею и погоду, но это можно увидеть только тогда, когда приложение активно. Пожалуйста, помогите мне найти способ добавить кнопку на полосу управления. Спасибо
Я видел другую ветку по этому поводу, но ответ был неясен и дал мне ошибки и фатальную ошибку инструкции.
extension TouchBarController: NSTouchBarDelegate {
static let shared = TouchBarController()
@objc func setupControlStripPresence() {
DFRSystemModalShowsCloseBoxWhenFrontMost(false)
let item = NSCustomTouchBarItem(identifier: .controlStripItem)
item.view = NSButton(image: #imageLiteral(resourceName: "StatusImage"), target: self, action: #selector(makeTouchBar))
NSTouchBarItem.addSystemTrayItem(item)
DFRElementSetControlStripPresenceForIdentifier(.controlStripItem, true)
}
override func makeTouchBar() -> NSTouchBar? {
let touchBar = NSTouchBar()
touchBar.delegate = self as NSTouchBarDelegate
touchBar.customizationIdentifier = .touchBar
touchBar.defaultItemIdentifiers = [.flexibleSpace, .weather, .battey, .time]
return touchBar
}
func touchBar(_ touchBar: NSTouchBar, makeItemForIdentifier identifier: NSTouchBarItem.Identifier) -> NSTouchBarItem? {
switch identifier {
case NSTouchBarItem.Identifier.time:
let timeLabel = NSCustomTouchBarItem(identifier: identifier)
timeLabel.view = NSTextField(labelWithString: timeValue)
return timeLabel
case NSTouchBarItem.Identifier.battey:
let batteryLabel = NSCustomTouchBarItem(identifier: identifier)
batteryLabel.view = NSTextField(labelWithString: batteryValue)
return batteryLabel
case NSTouchBarItem.Identifier.weather:
let weatherLabel = NSCustomTouchBarItem(identifier: identifier)
weatherLabel.view = NSTextField(labelWithString: weatherValue)
return weatherLabel
default:
return nil
}
}
}
Я получаю фатальную ошибку в строке, которая определяет item.view