Problemi con la visualizzazione% in NSRunAlertPanel
-
12-10-2019 - |
Domanda
Sto sviluppando un'applicazione desktop in cui voglio mostrare un messaggio nel pannello di avviso tramite NSRunAlertPanel. Sto facendo le seguenti cose:
NSString *title = @"% Test";
NSString *message = @"% Test Message";
NSRunAlertPanel(title, message, @"Ok" ,@"Cancel" ,nil);
Il pannello di allarme mostrano il titolo in modo corretto. cioè% Test Ma, il messaggio è est messaggio; Voglio visualizzare% Test Message.
Come faccio a risolvere questo problema?
Grazie in anticipo.
Nessuna soluzione corretta
Altri suggerimenti
Prova questo:
NSString *title = @"% Test";
NSString *message = @"%% Test Message";
NSRunAlertPanel(title, message, @"Ok" ,@"Cancel" ,nil);
Perché?
NSRunAlertPanel
utilizza NSBeginAlertSheet
. Guardando il documentazione per NSBeginAlertSheet si può vedere che ci sono più parametri dopo msg (specificato dal ...
).
Questo ci dice che il titolo è solo una stringa visualizzata letteralmente ma il messaggio può avere parametri di formato allo stesso modo che [NSString stringWithFormat:]
fa.
Il modo che specifica una stringa che sta per essere un parametro utilizzando un carattere% ie% i significa ' mettere un intero qui ',% @ significa ' pose descrizione dell'oggetto qui '. Hai appena messo un% di per sé, che ottiene le cose molto confuse!
Il doppio %% significa che questo è per cento non mi hai detto che voglio che mettiate qualcosa di speciale in là, ho davvero voglia l'% per favore.