macOS 中的 NSUserNotification 和 UNUserNotification 有什么区别?
What's the Difference Between NSUserNotification and UNUserNotification in macOS?
我有以下代码行 post 通过单击“测试”按钮发出通知。
import Cocoa
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDelegate {
func userNotificationCenter(_ center: NSUserNotificationCenter, shouldPresent notification: NSUserNotification) -> Bool {
return true
}
}
import Cocoa
import CloudKit
class HomeViewController: BasicViewController, NSUserNotificationCenterDelegate {
override func viewDidLoad() {
}
@IBAction func testClicked(_ sender: NSButton) {
let notification = MyNotificationDelegate()
NSUserNotificationCenter.default.delegate = self
notification.setNotification(title: "Test", message: "Test me if you can!")
}
}
import Cocoa
class MyNotificationDelegate: NSObject {
func setNotification(title: String, message: String) {
let notification: NSUserNotification = NSUserNotification()
notification.title = title
notification.informativeText = message
NSUserNotificationCenter.default.deliver(notification)
}
}
此代码来自此。这是 NSUserNotification
.
而且我看过。是 UNUserNotification
。基本上,它的作用与上面相同。那么 NSUserNotification 和 UNUserNotification 有什么区别呢?我看到的唯一区别是后者可以让您了解用户是否允许 post 通知。
如果应用程序在前面,NSUserNotification
或 UNUserNotification
都不会让系统显示通知。我想知道为什么?
谢谢。
NSUserNotification 现已弃用。
UNNotification 对象包含初始通知请求,其中包含通知的有效负载和通知的送达日期。
不要直接创建通知对象。在处理通知时,系统将通知对象传递给您的 UNUserNotificationCenterDelegate 对象。 UNUserNotificationCenter 对象还维护着之前发送的通知列表,您可以使用 getDeliveredNotifications(completionHandler:) 方法来检索这些对象。
改为使用 UNUserNotifaction
我有以下代码行 post 通过单击“测试”按钮发出通知。
import Cocoa
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDelegate {
func userNotificationCenter(_ center: NSUserNotificationCenter, shouldPresent notification: NSUserNotification) -> Bool {
return true
}
}
import Cocoa
import CloudKit
class HomeViewController: BasicViewController, NSUserNotificationCenterDelegate {
override func viewDidLoad() {
}
@IBAction func testClicked(_ sender: NSButton) {
let notification = MyNotificationDelegate()
NSUserNotificationCenter.default.delegate = self
notification.setNotification(title: "Test", message: "Test me if you can!")
}
}
import Cocoa
class MyNotificationDelegate: NSObject {
func setNotification(title: String, message: String) {
let notification: NSUserNotification = NSUserNotification()
notification.title = title
notification.informativeText = message
NSUserNotificationCenter.default.deliver(notification)
}
}
此代码来自此NSUserNotification
.
而且我看过UNUserNotification
。基本上,它的作用与上面相同。那么 NSUserNotification 和 UNUserNotification 有什么区别呢?我看到的唯一区别是后者可以让您了解用户是否允许 post 通知。
如果应用程序在前面,NSUserNotification
或 UNUserNotification
都不会让系统显示通知。我想知道为什么?
谢谢。
NSUserNotification 现已弃用。
UNNotification 对象包含初始通知请求,其中包含通知的有效负载和通知的送达日期。
不要直接创建通知对象。在处理通知时,系统将通知对象传递给您的 UNUserNotificationCenterDelegate 对象。 UNUserNotificationCenter 对象还维护着之前发送的通知列表,您可以使用 getDeliveredNotifications(completionHandler:) 方法来检索这些对象。
改为使用 UNUserNotifaction