Check if NSAlert is currently showing up

Viewed 1360

I am using an NSAlert to display error messages on the main screen of my app. Basically, the NSAlert is a property of my main view controller

class ViewController: NSViewController {

    var alert: NSAlert?

    ...

}

And when I receive some notifications, I display some messages

func operationDidFail(notification: NSNotification)
{
    dispatch_async(dispatch_get_main_queue(), {

        self.alert = NSAlert()
        self.alert.messageText = "Operation failed"
        alert.runModal();
    })
}

Now, if I get several notifications, the alert shows up for every notification. I mean, it shows up with the first message, I click on "Ok", it disappears and then shows up again with the second message etc... Which is a normal behaviour.

What I would like to achieve is to avoid this sequence of error message. I actually only care about the first one. Is there a way to know if my alert view is currently being displayed ? Something like alert.isVisible as on iOS's UIAlertView ?

2 Answers
Related