Vai al contenuto

Verificare che un campo di testo sia vuoto


Messaggi raccomandati

Salve a tutti. Sto programmando con objective-c un applicazione per mac OS X. Mi trovo ad un punto in cui devo far comparire una finestra di errore nel caso in cui il mio campo di testo sia vuoto, però ho problemi con la condizione da mettere. Infatti ho usato:

-(BOOL) checkError

{

if ( [taField1 floatValue] == 0)

{

return YES;

}

return NO;

}

dove taField è la mia textField in cui voglio verificare che non ci sia nessun numero.Il problema è che con questo codice che ho usato mi da errore anche se inserisco 0 cosa che invece deve essere possibile. Come posso fare per risolvere questo problema?

Link al commento
Condividi su altri siti

Come posso fare per risolvere questo problema?

Io ci penserei altri 5 minuti.

Sei abbastanza vicino alla soluzione, ma forse ti fai fregare dalla fretta.

Magari riguarda la documentazione di NSTextField, vedrai che aiuta. ;)

Marco - Gallery

MacBook Nero 2.2 GHz Intel Core 2 Duo - 4 GB RAM - Mac OS X 10.6 Snow Leopard

Link al commento
Condividi su altri siti

stavolta mi sembrava più corretto...

Si, forse concettualmente è un po' meglio dell'altra, ma c'è ancora qualcosa che non va.

In questo caso, infatti, stai usando l'operatore di ugualianza (==), ma non stai valutando due tipi primitivi, bensì due oggetti (e quindi i relativi puntatori) che, di conseguenza, pur essendo uguali nel contenuto, non lo sono nei riferimenti valutati.

È normale quindi che il risultato non sia quello che ti aspetti.

Come nel C per comparare due stringhe devi usare una funzione apposita, così in questo caso, per valutare due oggetti, devi usare un metodo apposito.

Adesso sta a te controllare meglio la documentazione e trovare quello che ti serve. ;)

P.S. Un'altra idea, altrimenti, ma non voglio darti la soluzione pronta, potrebbe essere quella di controllare che il numero di carratteri inseriti sia uguale a zero.

Marco - Gallery

MacBook Nero 2.2 GHz Intel Core 2 Duo - 4 GB RAM - Mac OS X 10.6 Snow Leopard

Link al commento
Condividi su altri siti

Si, forse concettualmente è un po' meglio dell'altra, ma c'è ancora qualcosa che non va.

In questo caso, infatti, stai usando l'operatore di ugualianza (==), ma non stai valutando due tipi primitivi, bensì due oggetti (e quindi i relativi puntatori) che, di conseguenza, pur essendo uguali nel contenuto, non lo sono nei riferimenti valutati.

È normale quindi che il risultato non sia quello che ti aspetti.

Come nel C per comparare due stringhe devi usare una funzione apposita, così in questo caso, per valutare due oggetti, devi usare un metodo apposito.

Adesso sta a te controllare meglio la documentazione e trovare quello che ti serve. ;)

P.S. Un'altra idea, altrimenti, ma non voglio darti la soluzione pronta, potrebbe essere quella di controllare che il numero di carratteri inseriti sia uguale a zero.

NSUInteger len = [[taField1 stringValue] length];

if ( len == 0 )

FATTO!!!!!! Grazie per l'indirazzamento!

Link al commento
Condividi su altri siti

  • 4 settimane dopo...

ma è molto semplice

if ([textF.text lenght] == 0) {
//vuoto
}

Hai un'idea su un'applicazione per iPhone e non sai come realizzarla? Realizzerò io la tua applicazione per te che potrai vendere su App Store beneficiando di tutti i guadagni.

Vuoi imparare a programmare per iPhone? Offro corsi e lezioni private di programmazione per ogni livello di conoscenze.

Contattami via email o visita http://simoneleopizzi.com.

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...