Macos NSUserNotification自定义声音(OS X、沙盒应用程序)
我想为NotificationCenter使用自定义声音,但找不到关于此的很多文档。我知道如何为通知分配声音,我知道如何将新声音文件复制到~/Library/Sounds,然后使用这些新声音。我的应用程序是沙盒式的,因此我当然必须要求用户确认他们想要安装新的声音,但我担心基于此应用程序商店规则的应用程序商店拒绝: 2.15 应用程序必须是自包含的单个应用程序安装包,并且不能在共享位置安装代码或资源 无论如何,是否可以在不将资源复制到~/Library/Sounds的情况下,将自定义声音与NSUserNotification一起使用 似乎有,但OSX没有Macos NSUserNotification自定义声音(OS X、沙盒应用程序),macos,cocoa,nsusernotification,nsusernotificationcenter,Macos,Cocoa,Nsusernotification,Nsusernotificationcenter,我想为NotificationCenter使用自定义声音,但找不到关于此的很多文档。我知道如何为通知分配声音,我知道如何将新声音文件复制到~/Library/Sounds,然后使用这些新声音。我的应用程序是沙盒式的,因此我当然必须要求用户确认他们想要安装新的声音,但我担心基于此应用程序商店规则的应用程序商店拒绝: 2.15 应用程序必须是自包含的单个应用程序安装包,并且不能在共享位置安装代码或资源 无论如何,是否可以在不将资源复制到~/Library/Sounds的情况下,将自定义声音与NSUs
提前感谢。标题中声明
NSUserNotification
类的soundName
属性的注释如下(添加了强调):
发送通知时要播放的应用程序包资源中声音文件的名称。NSUserNotificationDefaultSoundName可用于播放默认通知中心声音。“nil”值表示没有声音
因此,您只需在应用程序包的资源中发送一个声音文件,并将其名称用于用户通知的
soundName
。几乎可以肯定,这类似于,因此您应该传递文件名减去文件扩展名。NSNotification
和NSNotificationCenter
与OS X UI中的通知中心(从右侧滑入的东西)无关。它们与声音无关。您可能正在谈论nssernotification
和nssernotificationcenter
。不幸的是,这似乎不起作用。然而,这应该是答案。我可以使用NSSound SoundName:播放声音,但当尝试在NSUserNotification上使用相同的声音时,不会播放任何声音。我假设这是OS X中的一个错误。唯一可以更改通知声音的方法是将自定义声音复制到~/Library/sounds中。现在,我只需要使用以下内容手动播放自定义声音:[[NSSound soundNamed:[self.prefsNotifSoundButton titleOfSelectedItem]]play]代码>