cocoa – 在一定时间后隐藏NSUserNotification

目前,当我使用警报样式创建NSUserNotification时,除非我手动关闭它,否则它将不会隐藏.

enter image description here

有没有办法可以在2秒后自动关闭/隐藏它?

NSUserNotification代码仅供参考:

let notification:NSUserNotification = NSUserNotification()
notification.title = "Title"
notification.subtitle = "Subtitle"
notification.informativeText = "informative text"

notification.soundName = NSUserNotificationDefaultSoundName

notification.deliveryDate = NSDate(timeIntervalSinceNow: 10)
notification.hasActionButton = false
let notificationcenter:NSUserNotificationCenter = NSUserNotificationCenter.defaultUserNotificationCenter()
notificationcenter.scheduleNotification(notification)

解决方法

使用NSObject来实现这一点非常简单
performSelector:withObject:afterDelay:方法.

由于您在一定时间间隔后安排通知传递,因此您需要在解除之前将额外延迟添加到传递之前的初始延迟.在这里,我把它们写成交货前10秒的常数,以及解雇前2秒:

let delayBeforeDelivering: NSTimeInterval = 10
let delayBeforedismissing: NSTimeInterval = 2

let notification = NSUserNotification()
notification.title = "Title"
notification.deliveryDate = NSDate(timeIntervalSinceNow: delayBeforeDelivering)

let notificationcenter = NSUserNotificationCenter.defaultUserNotificationCenter()

notificationcenter.scheduleNotification(notification)

notificationcenter.performSelector("removeDeliverednotification:",withObject: notification,afterDelay: (delayBeforeDelivering + delayBeforedismissing))

相关文章

我正在用TitaniumDeveloper编写一个应用程序,它允许我使用Ja...
我的问题是当我尝试从UIWebView中调用我的AngularJS应用程序...
我想获取在我的Mac上运行的所有前台应用程序的应用程序图标....
我是一名PHP开发人员,我使用MVC模式和面向对象的代码.我真的...
OSX中的SetTimer在Windows中是否有任何等效功能?我正在使用...
我不确定引擎盖下到底发生了什么,但这是我的设置,示例代码和...