1
0
mirror of https://github.com/Toxblh/MTMR.git synced 2026-01-10 17:08:39 +00:00

Merge pull request #5 from ReDetection/master

Workaround for apple script
This commit is contained in:
Anton Palgunov 2018-04-09 17:29:14 +01:00 committed by GitHub
commit bb0c81ea76
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,10 +1,9 @@
import Foundation import Foundation
class AppleScriptTouchBarItem: NSCustomTouchBarItem { class AppleScriptTouchBarItem: NSCustomTouchBarItem {
private let script: NSAppleScript private let script: NSAppleScript!
private let queue = DispatchQueue(label: "apple script touchbar queue", qos: .utility, attributes: [], autoreleaseFrequency: .workItem, target: nil)
private let interval: TimeInterval
private let button = NSButton(title: "", target: nil, action: nil) private let button = NSButton(title: "", target: nil, action: nil)
private let interval: TimeInterval
init?(identifier: NSTouchBarItem.Identifier, appleScript: String, interval: TimeInterval) { init?(identifier: NSTouchBarItem.Identifier, appleScript: String, interval: TimeInterval) {
guard let script = NSAppleScript(source: appleScript) else { guard let script = NSAppleScript(source: appleScript) else {
@ -16,7 +15,7 @@ class AppleScriptTouchBarItem: NSCustomTouchBarItem {
self.view = button self.view = button
button.bezelColor = .clear button.bezelColor = .clear
button.title = "compile" button.title = "compile"
queue.async { DispatchQueue.main.async {
var error: NSDictionary? var error: NSDictionary?
guard script.compileAndReturnError(&error) else { guard script.compileAndReturnError(&error) else {
print(error?.description ?? "unknown error") print(error?.description ?? "unknown error")
@ -39,7 +38,7 @@ class AppleScriptTouchBarItem: NSCustomTouchBarItem {
DispatchQueue.main.async { DispatchQueue.main.async {
self.button.title = scriptResult self.button.title = scriptResult
} }
queue.asyncAfter(deadline: .now() + self.interval) { [weak self] in DispatchQueue.main.asyncAfter(deadline: .now() + self.interval) { [weak self] in
self?.refreshAndSchedule() self?.refreshAndSchedule()
} }
} }