私はこのコードを使用しています:
- (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];
}
そして、私は間違いなく、
アクションボタンやその他のボタンはありません。
そして、ここに答えがありました。
Freenodeの#macdevに改めて感謝します。
ボタンを表示するには、選択範囲を「アラート」にする必要があります。
前の回答ですでに述べたように、通知タイプは、アクションボタンが表示されることを警告するように設定する必要があります。アプリのデフォルトの通知スタイルをアラートに設定する場合は、info.plistでキーNSUserNotificationAlertStyleを値alertで定義する必要があります。
詳細については、Appleの info.plistキーリファレンス を参照してください。
NSUserNotificationAlertStyle通知スタイルをbanners、alerts、またはnoneのいずれにするかを指定します。デフォルト値はbannersで、これが推奨されるスタイルです。
他の回答の反対の例として、iTunesを使用できます。バナーにアラートスタイルを設定しても、「スキップ」ボタンが表示されます。だから私は検索を続け、 this github repo where Indragie Karunaratne NSUserNotificationプライベートヘッダーにいくつかの便利な追加プロパティを提供することを発見しました。 NSUserNotification_Private.hファイルでプロパティの完全なリストを確認できますが、実際にはバナー通知スタイルでボタンを表示します。
@property BOOL _showsButtons; // @dynamic _showsButtons;
この行をコードに追加するだけです
[notification setValue:@YES forKey:@"_showsButtons"];
通知アクションボタンはアラートスタイルに依存しなくなります。
pARTISANの応答に基づく魔法のコマンドは次のとおりです。
notification.set_showsButtons_(True)
チャチン:)