From d0cfa45b5dd16b384d86b76820f11f9947724069 Mon Sep 17 00:00:00 2001 From: Serg Date: Wed, 11 Apr 2018 23:46:05 +0700 Subject: [PATCH] hacky solution to autohide if title is empty --- MTMR/AppleScriptTouchBarItem.swift | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/MTMR/AppleScriptTouchBarItem.swift b/MTMR/AppleScriptTouchBarItem.swift index b117a24..b5eed27 100644 --- a/MTMR/AppleScriptTouchBarItem.swift +++ b/MTMR/AppleScriptTouchBarItem.swift @@ -4,11 +4,13 @@ class AppleScriptTouchBarItem: NSCustomTouchBarItem { private var script: NSAppleScript! private let button = NSButton(title: "", target: nil, action: nil) private let interval: TimeInterval + private var forceHideConstraint: NSLayoutConstraint! init?(identifier: NSTouchBarItem.Identifier, source: Source, interval: TimeInterval) { self.interval = interval super.init(identifier: identifier) self.view = button + self.forceHideConstraint = self.view.widthAnchor.constraint(equalToConstant: 0) guard let source = source.string else { button.title = "no script" return @@ -42,12 +44,15 @@ class AppleScriptTouchBarItem: NSCustomTouchBarItem { let scriptResult = self.execute() DispatchQueue.main.async { self.button.title = scriptResult + self.forceHideConstraint.isActive = scriptResult == "" } DispatchQueue.main.asyncAfter(deadline: .now() + self.interval) { [weak self] in self?.refreshAndSchedule() } } + + func execute() -> String { var error: NSDictionary? let output = script.executeAndReturnError(&error) @@ -55,6 +60,7 @@ class AppleScriptTouchBarItem: NSCustomTouchBarItem { print(error) return "error" } - return output.stringValue ?? "empty value" + return output.stringValue ?? "" } + }