2012-07-26 23 views
39

sto usando questo codice:NSUserNotification non mostrando pulsante di azione

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

e sto ottenendo, a colpo sicuro,

enter image description here

No pulsante di azione, o altro pulsante.

risposta

26

Ed ecco la risposta.

Grazie ancora a #macdev su freenode.

enter image description here

La selezione deve essere "Allarmi" di avere pulsanti.

+1

Come sei arrivato a questa schermata? – Dorian

48

Come già indicato in una risposta precedente, è necessario impostare il tipo di notifica in modo che venga visualizzato il pulsante di azione. Se si desidera impostare lo stile di notifica predefinito della propria app in allerta, è necessario definire la chiave NSUserNotificationAlertStyle in info.plist con l'avviso .

Vedi Apple info.plist keys reference per maggiori dettagli:

NSUserNotificationAlertStyle Specifica se lo stile di notifica dovrebbe essere banner, avvisi o nessuno. Il valore predefinito è banner, che è lo stile consigliato.

+1

Sai se qualcosa di simile è disponibile per iOS? –

+0

Non credo che questo possa essere configurato per UILocalNotifications in iOS con le API attuali. –

+5

E, l'app deve essere firmata per consentire i pulsanti. – RichS

17

Come istanza contraria per altre risposte, possiamo utilizzare iTunes: mostra ancora il pulsante "Salta" anche quando impostiamo lo stile di avviso sui banner. Così ho continuato a cercare e ho trovato this github repo dove Indragie Karunaratne fornisce alcune proprietà aggiuntive utili nelle intestazioni private NSUserNotification. È possibile verificare per la lista completa delle proprietà del file di NSUserNotification_Private.h , ma effettivo per i pulsanti che mostrano in stile notifica banner è

@property BOOL _showsButtons; // @dynamic _showsButtons; 

quindi si può solo aggiungere questa riga a voi il codice

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

e il pulsante di azione di notifica diventerà indipendente sullo stile di avviso.

+0

Sfortunatamente, questo non funziona in El Capitan. ( –

+2

funziona per me in El Capitan .. – Dorian

+0

come aggiungere il selettore per il pulsante nella notifica? –

1

comando magia sulla base di risposta di PARTIGIANO è:

notification.set_showsButtons_(True) 

Cha-Ching :)

+0

Ha funzionato perfettamente in PyObjC – kgutwin

Problemi correlati