BlueHuskyStudios/Howl

timeToLive, fadeOutAnimationDuration, afterHideCallback don't seem to be working

開放

#10 建立於 2023年10月3日

 (6 則留言) (0 個反應) (0 位負責人)Swift (9 個分叉)auto 404
bughelp wanted

倉庫指標

星標
 (34 顆星)
PR 合併指標
 (PR 指標待抓取)

描述

Have a really simple program where I am trying to show an HUD, but I can't seem to be able to get timeToLive, fadeOutAnimationDuration and afterHideCallback options to work, despite whatever value I set the HUD disappears with no animations, fadeInAnimationDuration seems to work though. also timeToLive does not seem to have any effect and the HUD disappears after the same time no matter what value I set. afterHideCallback does not seem to trigger either.

import AppKit
import BezelNotification

func after(_ delay: TimeInterval, perform block: @escaping ()->(), on queue: DispatchQueue = OperationQueue.current?.underlyingQueue ?? .main) { // So this `queue` preserves the current queue and defaulted to the `main`. Also the caller can pass in the desired queue explicitly
    queue.asyncAfter(deadline: .now() + delay, execute: block)
}

var showMuted: Bool = true

for argument in CommandLine.arguments {
    if (argument == "un-muted") {
        showMuted = false;
    }
}

let app = NSApplication.shared

class AppDelegate: NSObject, NSApplicationDelegate {
    func applicationDidFinishLaunching(_ notification: Notification) {
        var path: String?
        if (showMuted) {
            path = Bundle.module.path(forResource: "mic.slash.fill", ofType: "png")
        } else {
            path = Bundle.module.path(forResource: "mic.fill", ofType: "png")
        }
        let bezelIcon = NSImage(contentsOfFile: path!)
        BezelNotification.show(
            messageText: "",
            icon: bezelIcon,
            timeToLive: .exactly(seconds: 2),
            fadeInAnimationDuration: 0,
            fadeOutAnimationDuration: 0
        )
        after(2) {
            app.terminate(self)
        }
    }
}

let delegate = AppDelegate()
app.delegate = delegate
app.run()

貢獻者指南