40

私はこのコードを使用しています:

- (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];
}

そして、私は間違いなく、

ここに画像の説明を入力してください

アクションボタンやその他のボタンはありません。

4

4 に答える 4

50

前の回答ですでに述べたように、通知タイプは、アクションボタンが表示されることを警告するように設定する必要があります。アプリのデフォルトの通知スタイルをアラートに設定する場合は、info.plistでキーNSUserNotificationAlertStyleを値alertで定義する必要があります。

詳細については、Appleのinfo.plistキーリファレンスを参照してください。

NSUserNotificationAlertStyle通知スタイルをバナーアラート、またはなしのいずれにするかを指定します。デフォルト値はbannersで、これが推奨されるスタイルです。

于 2012-08-17T20:45:43.303 に答える
27

そして、ここに答えがありました。

freenodeの#macdevに改めて感謝します。

ここに画像の説明を入力してください

ボタンを表示するには、選択範囲が「アラート」である必要があります。

于 2012-07-26T19:29:28.330 に答える
18

他の回答の反対の例として、iTunesを使用できます。バナーにアラートスタイルを設定しても、[スキップ]ボタンが表示されます。そこで、検索を続けて、IndragieKarunaratneがNSUserNotificationプライベートヘッダーにいくつかの便利な追加プロパティを提供するこのgithubリポジトリを見つけましNSUserNotification_Private.hファイルでプロパティの完全なリストを確認できますが、実際にはバナー通知スタイルでボタンを表示します。

@property BOOL _showsButtons; // @dynamic _showsButtons;

この行をコードに追加するだけです

[notification setValue:@YES forKey:@"_showsButtons"];

通知アクションボタンはアラートスタイルに依存しなくなります。

于 2014-04-15T15:02:39.870 に答える
1

パルチザンの返事に基づく魔法の命令は次のとおりです。

notification.set_showsButtons_(True)

チャチン:)

于 2015-10-22T08:26:04.363 に答える