У меня есть представление в моем приложении macOS, которое необходимо уведомить, когда пользователь нажал кнопки отмены и возврата в строке меню. В AppDelegate
у меня есть IBActions, которые запускаются, когда пользователь нажимает кнопку отмены / возврата. IBAction публикует уведомление с помощью центра уведомлений, как показано ниже:
extension Notification.Name {
static let undo = Notification.Name("undo")
static let redo = Notification.Name("redo")
}
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
@IBAction func menuBarUndo(_ sender: Any) {
print("AppDelegate: pressed undo")
nc.post(name: .undo, object: nil)
}
@IBAction func menuBarRedo(_ sender: Any) {
print("AppDelegate: pressed redo")
nc.post(name: .redo, object: nil)
}
let nc = NotificationCenter.default
// applicationDidFinishLaunching and applicationWillTerminate not shown for brevity
}
В моем ContentView
у меня есть функция, которую необходимо вызвать, когда пользователь нажимает кнопку отмены / возврата. Его нужно запускать изнутри ContentView
, поскольку оно опирается на данные, содержащиеся в этом представлении. Как подписаться на уведомление из ContentView
, чтобы я мог вызвать функцию?