time in separate file, divide bar in two parts

This commit is contained in:
Serg
2018-04-09 17:11:52 +07:00
parent ee0eab6a76
commit b3f461db45
3 changed files with 31 additions and 20 deletions
+25
View File
@@ -0,0 +1,25 @@
import Cocoa
class TimeTouchBarItem: NSCustomTouchBarItem {
private let dateFormatter = DateFormatter()
private var timer: Timer!
private let button = NSButton(title: "", target: nil, action: nil)
init(identifier: NSTouchBarItem.Identifier, formatTemplate: String) {
dateFormatter.setLocalizedDateFormatFromTemplate(formatTemplate)
super.init(identifier: identifier)
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(updateTime), userInfo: nil, repeats: true)
self.view = button
button.bezelColor = .clear
updateTime()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
@objc func updateTime() {
button.title = self.dateFormatter.string(from: Date())
}
}
+3 -20
View File
@@ -14,9 +14,6 @@ class TouchBarController: NSObject, NSTouchBarDelegate {
let touchBar = NSTouchBar()
var timer = Timer()
var timeButton: NSButton = NSButton()
private override init() {
super.init()
touchBar.delegate = self
@@ -27,6 +24,8 @@ class TouchBarController: NSObject, NSTouchBarDelegate {
.brightDown,
.brightUp,
.flexibleSpace,
.prev,
.play,
.next,
@@ -48,7 +47,6 @@ class TouchBarController: NSObject, NSTouchBarDelegate {
item.view = NSButton(image: #imageLiteral(resourceName: "Strip"), target: self, action: #selector(presentTouchBar))
NSTouchBarItem.addSystemTrayItem(item)
DFRElementSetControlStripPresenceForIdentifier(.controlStripItem, true)
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(self.updateTime), userInfo: nil, repeats: true)
}
func updateControlStripPresence() {
@@ -90,28 +88,13 @@ class TouchBarController: NSObject, NSTouchBarDelegate {
return CustomButtonTouchBarItem(identifier: identifier, title: "⏩", HIDKeycode: NX_KEYTYPE_NEXT)
case .time:
let item = NSCustomTouchBarItem(identifier: identifier)
timeButton = NSButton(title: self.getCurrentTime(), target: self, action: nil)
item.view = timeButton
return item
return TimeTouchBarItem(identifier: identifier, formatTemplate: "HH:mm")
default:
return nil
}
}
func getCurrentTime() -> String {
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.setLocalizedDateFormatFromTemplate("HH:mm")
let timestamp = dateFormatter.string(from: date)
return timestamp
}
@objc func updateTime() {
timeButton.title = getCurrentTime()
}
// func getBattery() {
// var error: NSDictionary?
// if let scriptObject = NSAppleScript(source: <#T##String#>) {