NSUserNotification不显示操作button
我正在使用这个代码:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { // Insert code here to initialize your application NSUserNotification *notification = [[NSUserNotification alloc] init]; [notification setTitle: @"Title"]; [notification setSubtitle: @"Subtitle"]; [notification setInformativeText: @"Informative Text"]; [notification setHasActionButton: YES]; [notification setActionButtonTitle: @"Action Button"]; [notification setOtherButtonTitle: @"Other Button"]; [notification setSoundName: NSUserNotificationDefaultSoundName]; [notification setDeliveryDate: [NSDate dateWithTimeIntervalSinceNow: 10]]; [[NSUserNotificationCenter defaultUserNotificationCenter] scheduleNotification: notification]; }
而且我越来越多,
没有操作button或其他button。
如前面的回答中所述,需要将通知types设置为警示要显示的操作button。 如果要设置应用程序的默认通知样式以提醒,则需要使用值alert来定义info.plist中的NSUserNotificationAlertStyle关键字。
有关更多详细信息,请参阅Apple的info.plist键参考 :
NSUserNotificationAlertStyle指定通知样式是横幅 , 警报还是无 。 默认值是横幅,这是推荐的风格。
这就是答案。
再次感谢freenode上的#macdev。
select需要是“警报”才能有button。
作为其他答案的反例,我们可以使用iTunes – 它仍然显示“跳过”button,即使我们设置提醒样式的横幅。 所以我继续search,发现这个github回购 Indragie Karunaratne在NSUserNotification私人头文件中提供一些有用的附加属性。 您可以检查NSUserNotification_Private.h文件中的属性的完整列表,但实际用于显示标题通知样式中的button是
@property BOOL _showsButtons; // @dynamic _showsButtons;
所以你可以添加这行代码
[notification setValue:@YES forKey:@"_showsButtons"];
并且您的通知操作button将在警报风格上变得独立。
基于PARTISAN回复的魔法指令是:
notification.set_showsButtons_(True)
茶清:)