Pregunta

tengo un problema. He implementado un UITextField que contiene un numero de teléfono, entonces he implementado el método siguiente para llamar al número de teléfono:

- (void)rufeAn{
NSString *prefix = (@"tel://");
UIApplication *app = [UIApplication sharedApplication];
NSString *dialThis = [NSString stringWithFormat:@"%@%@", prefix, map.kordinate.telefon];
NSURL *url = [NSURL URLWithString:dialThis];
[app openURL:url];

}

Pero, ¿cómo puedo decir que el campo de texto cuando toco en él, para iniciar el método y marcar?

¿Fue útil?

Solución

Estoy de acuerdo con St3fan que un campo de texto normal, nunca debe provocar una acción tocando. Voy a suponer por un momento que usted tiene un UITextField especial que se puede hacer editable y luego se ve como un UILabel, formateado para parecerse a un hipervínculo. una interfaz de usuario de este tipo podría ser correcta. Al tocar un campo de texto que parece que es editable pero en realidad hace una llamada telefónica por supuesto sería incorrecto.

Se puede implementar el protocolo UITextFieldDelegate y el reloj para textFieldShouldBeginEditing:. Desde este campo de texto no se puede editar, obviamente, debe devolver NO.

Se podría añadir un botón "Call" dentro del campo de texto usando sus puntos de vista de superposición (leftView o rightView; leer los documentos en el equipo de usuario correcto para estos)

.

Se podría subclase UITextField para anular touchesBegan:withEvent, touchesEnded:withEvent: y touchesCancelled:withEvent: para manejar el toque a ti mismo. Recuerde: usted debe recibir una touchesBegan y touchesEnded sin touchesCancelled entre ellos con el fin de tener en cuenta que un toque. Nunca dispare una acción basada únicamente en touchesBegan.

Otros consejos

Al tocar un campo de texto no debe dar lugar a algún tipo de acción. En mi opinión de que es mal diseño de la interfaz de usuario. ¿Por qué no añades un botón situado junto al campo que se ejecuta el código anterior?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top