我是Swift的新手(但不是编程)。我有一个简单的应用程序,提供基于特定条件的警报。我想在按下其中一个按钮时执行一个函数(甚至只是设置一个变量)。理想情况下,我只需要一个按钮,但如果出于任何原因,只有notification.actionButtonTitle
可以有一个处理程序,那对我来说没问题。
我的通知代码目前作为帮助程序在Swift文件中。
import Foundation
class NotificationHelper {
static func sampleNotification(notification: NSUserNotification) {
let notificationCenter = NSUserNotificationCenter.default
notification.identifier = "unique-id-123"
notification.hasActionButton = true
notification.otherButtonTitle = "Close"
notification.actionButtonTitle = "Show"
notification.title = "Hello"
notification.subtitle = "How are you?"
notification.informativeText = "This is a test"
notificationCenter.deliver(notification)
}
}
目前在AppDelegate
中,已定义:
let notification = NSUserNotification()
...我将这样的通知称为:
NotificationHelper.sampleNotification(notification: notification)
生成的通知有效,如下面的屏幕截图所示。但是,我似乎无法听取按钮动作。我已经尝试将其添加到AppDelegate
以及NotificationHelper
文件中,但我没有取得任何成功:
func userNotificationCenter(center: NSUserNotificationCenter, didActivateNotification notification: NSUserNotification) {
print("checking notification response")
}
知道我缺少什么吗?
谢谢!
答案 0 :(得分:3)
您需要将某些内容指定为$environmentpath/production/manifests/init.pp
的<{1}}:
delegate
如果您将此添加到NSUserNotificationCenter
并使NSUserNotificationCenter.default.delegate = self
符合NSUserNotificationCenterDelegate:
AppDelegate