Ответ 1
И вот был ответ.
Еще раз спасибо #macdev на freenode.
Выбор должен быть "Оповещения", чтобы иметь кнопки.
Я использую этот код:
- (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];
}
И я получаю непременно
Нет кнопки действий или другой кнопки.
И вот был ответ.
Еще раз спасибо #macdev на freenode.
Выбор должен быть "Оповещения", чтобы иметь кнопки.
Как уже указывалось в предыдущем ответе, тип уведомления должен быть настроен на предупреждение для кнопки действия, которая будет показана. Если вы хотите настроить стиль уведомлений по умолчанию для своего приложения, вам необходимо определить ключ NSUserNotificationAlertStyle в файле info.plist со значением alert.
Подробнее см. ссылку Apple info.plist:
NSUserNotificationAlertStyle Указывает, должен ли стиль уведомления быть баннеров, предупреждений или none. Значением по умолчанию являются баннеры, которые являются рекомендуемым стилем.
В качестве противоположного примера для других ответов мы можем использовать iTunes - он все еще показывает кнопку "Пропустить", даже когда мы настраиваем стиль оповещения на баннеры. Поэтому я продолжил поиск и нашел это github repo, где Indragie Karunaratne предоставляет некоторые полезные дополнительные свойства в частных заголовках NSUserNotification. Вы можете проверить полный список свойств в файле NSUserNotification_Private.h, но фактическая для отображения кнопок в стиле уведомления баннера
@property BOOL _showsButtons; // @dynamic _showsButtons;
чтобы вы могли просто добавить эту строку к вашему коду
[notification setValue:@YES forKey:@"_showsButtons"];
и ваша кнопка уведомления будет независима от стиля предупреждения.
магическая команда, основанная на ответе PARTISAN:
notification.set_showsButtons_(True)
cha -ching:)