macOS Swift 3 - 处理通知警报操作按钮

时间:2017-07-23 20:14:05

标签: swift macos

我是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")

}

知道我缺少什么吗?

谢谢!

Sample macOS notification using Swift3

1 个答案:

答案 0 :(得分:3)

您需要将某些内容指定为$environmentpath/production/manifests/init.pp的<{1}}:

delegate

如果您将此添加到NSUserNotificationCenter并使NSUserNotificationCenter.default.delegate = self符合NSUserNotificationCenterDelegate

AppDelegate