> On 12 May 2021, at 11:17 am, Carl Hoefs via Cocoa-dev
> <[email protected]> wrote:
>
> I'd like to present an informational alert for n seconds then dismiss it
> without user interaction. But I don't see any way to dismiss, terminate,
> cancel, invalidate, etc. an NSAlert object.
I recently did that exact thing, like this:
> let alert = NSAlert()
> // ...
>
> var countdown = 10
> func updateMessage() {
> alert.informativeText = "This message will dismiss in \(countdown)
> second\(countdown == 1 ? "" : "s")."
> countdown -= 1
> }
> let timer = Timer(timeInterval: 1.0, repeats: true) { timer in
> if countdown == 0 {
> timer.invalidate()
> NSApp.abortModal()
> } else {
> updateMessage()
> }
> }
> updateMessage()
> RunLoop.main.add(timer, forMode: .common)
>
> alert.runModal()
The key is `abortModal()`.
-ben
_______________________________________________
Cocoa-dev mailing list ([email protected])
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to [email protected]