在上图中,您可以在 OS X 上看到两个通知。第一个来 self 的应用程序,第二个来自 Apple 的 Reminders.app。在图像中,您可以看到 otherButtonTitle
“完成”和 actionButtonTitle
“稍后”。
第二个通知,即来自 Reminders.app 的通知,其行为完全不同。当鼠标悬停时,它会出现一个向下的小箭头,表明单击时有更多操作。事实上,您只需点击“稍后”一次,它就会为您提供更多选项可供选择。
但是,我无法让相同的行为适用于我的通知。我没有在鼠标悬停时看到小箭头,也没有通过单击“稍后”显示更多选项(通知只是被忽略)。仅当在“稍后”上按住鼠标按钮时才会显示更多选项,这并不明显。
我在这里遗漏了一些明显的东西吗?如何使我的通知与 Reminders.app 中的通知完全相同?
最佳答案
在尝试寻找同一问题的解决方案时,我发现了 NSUserNotificationPrivate 类的一个很好的解释,它解释了提醒应用程序如何执行此操作。
https://github.com/indragiek/NSUserNotificationPrivate
如果通知类型设置为“Alert”,alternateActionButtonTitles 属性允许您设置要在操作菜单中显示的附加菜单项标题数组,可以通过将鼠标悬停在“操作”按钮上并单击箭头来访问该菜单。
处理通知后,可以使用 _alternateActionIndex 属性检索操作的索引。
所以他们使用的是私有(private) API。正如该网站的免责声明所述,使用任何此类内容都将导致您的应用被 MAS 拒绝,并且如果 API 发生更改,则可能会导致应用程序崩溃。
关于macos - 单击时显示 NSUserNotification 附加操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33631218/