2013-02-11 15 views
6

Ho un personalizzato UITextField utilizzato per la convalida per l'input vuoto non, e-mail corrette, le password più grande di caratteri x eccapplicazione si blocca dopo la modifica personalizzata UITextField

Il UITextField ha un delegato a se stesso, dal momento che faccio tutto la convalida sull'oggetto del campo di testo stesso. Non sono sicuro se questo è il problema.

Questa personalizzata UITextField viene creata nel file .XIB.

Il campo di testo a volte blocca l'applicazione durante la modifica del campo di testo stesso. Di solito si blocca anche quando premo il pulsante "Avanti" sulla tastiera (per andare al prossimo campo di testo che deve essere riempito).

Xcode non restituisce un errore (come un errore di ciclo, che presumevo fosse), l'applicazione si blocca. Questo non accade sempre, ma di solito, se tento di testarlo con del testo, quindi premere "Avanti", è probabile che si blocchi.

L'app non si arresta in modo anomalo ... non torna alla schermata principale, ma si blocca solo e non risponde.

Qualche idea? Fammi sapere se hai bisogno di più informazioni per capirlo. Sono in perdita al momento.


edit: risolto, a quanto pare non è una buona idea per impostare il delegato di un UITextField a se stesso. Quello che ho finito è creare una classe separata che si occupa specificamente come delegato per il UITextField e facendo tutta la logica in quella classe. Quella classe avrebbe anche una proprietà connessa al campo di testo per cui è un delegato.

+0

Penso che tu stia bloccando il thread principale e l'interfaccia utente dell'app non risponde. Codice postale in cui viene effettuata la convalida – azimov

+2

Questo risponderà alla tua domanda: http://stackoverflow.com/questions/1747777/self-delegate-self-whats-wrong-in-doing-that – trojanfoe

+0

@trojanfoe - grazie. Darò una prova. Potrebbe esserci una ragione per cui questo particolare problema appare solo su iPhone 5/iOS 6.0, ma non succede su iPhone 4/iOS 6.0? – Andrei

risposta

7

sarò anche scrivere la risposta qui:

A quanto pare non è una buona idea per impostare il delegato di un UITextField a se stessa, perché può finire per andare in un ciclo.

Quello che ho finito è creare una classe separata che si occupa specificamente come delegato per UITextField e facendo tutta la logica in quella classe. Quella classe avrebbe anche una proprietà connessa al campo di testo per cui è un delegato.

+1

Mi hai salvato la vita (e le mie vacanze !!): D – QLag

+0

@QLag Haha, è molto bello sentire! Bonnes vacances! – Andrei

Problemi correlati