You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Swift中访问NSApplicationLaunchUserNotificationKey?ObjC转Swift遇阻

处理NSApplicationLaunchUserNotificationKey的Swift实现方案

没问题,我帮你把这段Objective-C代码转换成对应的Swift实现,还会给你梳理清楚逻辑~

核心转换代码

if let userNotification = (myNotification.userInfo?[NSApplicationLaunchUserNotificationKey] as? NSUserNotification) {
    // 应用是通过用户在通知中心的选择启动的,这里编写你的处理逻辑
}

代码细节说明

  • 用Swift的可选绑定(if let)做安全解包,从根源避免空值引发的崩溃问题
  • 从通知的userInfo字典中,通过NSApplicationLaunchUserNotificationKey键取值,并向下转换为NSUserNotification类型
  • 当条件成立时,就代表应用是用户点击通知中心的通知触发启动的,你可以在这里添加对应业务逻辑,比如跳转目标页面、展示通知详情等

完整场景示例(在applicationDidFinishLaunching中使用)

如果是在AppDelegate的启动回调里处理,完整代码如下:

func applicationDidFinishLaunching(_ aNotification: Notification) {
    if let userNotification = (aNotification.userInfo?[NSApplicationLaunchUserNotificationKey] as? NSUserNotification) {
        print("应用通过通知启动,通知内容:\(userNotification)")
        // 这里添加你的具体处理逻辑
    }
}

内容的提问来源于stack exchange,提问作者sunknudsen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 19:23:01