2010-07-18 8 views

Respuesta

27

En primer lugar, el [...] no es necesario si no está enviando un mensaje.

Number.editable = NO; 
[Number resignFirstResponder]; 
Password.editable = NO; 
[Password resignFirstResponder]; 

Pero esto no es la causa del error. The .editable property solo se define para UITextView, no UITextField. Debe establecer the .enabled property para un UITextField (tenga en cuenta que un UITextField es un UIControl).

Number.enabled = NO; 
... 
+0

i se dio cuenta de esto y cambió poco después de la publicación, pero que todavía no está trabajando: S – user393273

+0

ahhh im mee tonta utilizado para textviews XD gracias por su tiempo – user393273

18

Además, puede utilizar los métodos de delegado.

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    return NO; 
} 

Eso haría el truco, yo prefiero este método sobre el establecimiento de textField.enabled = SÍ cuando es probable que la capacidad de editar cambiará durante el ciclo de vida de la aplicación.

+0

La vaina BlocksKit hace que este aún más fácil: list.bk _shouldBeginEditingBlock =^BOOL (campo UITextField *) { return NO; }; –

0

Devolver NO desde shouldChangeCharactersInRange sería una mejor opción porque si el texto es más largo que el ancho del campo de texto, la solución anterior dará problemas, porque el usuario no podrá ver todo el texto (es decir, texto oculto más allá del ancho del campo de texto)

5
textField.userInteractionEnabled = NO; 

Espero que esto ayude ..

+0

Tenga en cuenta que esto significará que el usuario no podrá hacer una presión larga para copiar también – mylogon

Cuestiones relacionadas