¿Es posible configurar un UITextField con leftView de modo que si un usuario hace clic en UITextField el teclado muestra pero si hacen clic en un icono en la izquierda se llama otro método (es decir, uno que muestra un UIPickerview)?UITextField leftView
Respuesta
¿Ha intentado utilizar un UIButton para esta tarea? A partir de la documentación de la propiedad leftView:
Si su vista superposición no se superpone otros puntos de vista de hermanos, que recibe eventos de toque como cualquier otra vista. Si especifica un control para su vista, las pistas de control y envía las acciones como de costumbre. Si una vista de superposición se superpone a , el botón borrar, sin embargo, el botón claro siempre tiene prioridad en recibiendo eventos.
Para crear una instancia de UIButton, configure su apariencia y acciones según sea necesario, luego configúrelo como la propiedad leftView.
¿Ha comprobado que el leftFieldViewMode se establece en algo que no sea nunca se
[textField setLeftViewMode:UITextFieldViewModeAlways];
instancias de un botón como se hace u normaly
UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom];
[btn setFrame:CGRectMake(0,0,30,30)];
[btn setTitle:@"title" forState:UIControlStateNormal];
[btn addTarget:self action:@selector(BtnClick) forControlEvents:UIControlEventTouchUpInside];
instancias de un campo de texto como lo hace normalmente
UITextField *txtfield1=[[UITextField alloc]initWithFrame:CGRectMake(10, 10,300,30)];
[txtfield1 setBackgroundColor:[UIColor grayColor]];
[txtfield1 setPlaceholder:@" Enter"];
Para establecer una vista en el lado izquierdo (también está disponible la vista derecha)
[txtfield1 setLeftView:btn];
si quieres la vista para mostrar siempre a continuación, por debajo de código hace que
[txtfield1 setLeftViewMode:UITextFieldViewModeAlways];
si quieres la vista para mostrar Nunca continuación
[txtfield1 setLeftViewMode:UITextFieldViewModeNever];
si quieres la vista para mostrar si el campo de texto no está editado, entonces debajo de
[txtfield1 setLeftViewMode:UITextFieldViewModeUnlessEditing];
si quieres la vista para mostrar si el campo de texto se edita entonces
[txtfield1 setLeftViewMode:UITextFieldViewModeWhileEditing];
evento de clic de botón y el pop más
-(void)BtnClick
{
//Usual pop over coding goes here
}
- 1. Personalizado UITextField
- 2. UITextField focus
- 3. UITextField setVisible?
- 4. Eventos UiTextField
- 5. UITextField ignorando la entradaDelegate‽
- 6. UITextField en UITableViewCell Help
- 7. UITextField clearButtonMode color
- 8. Capitalización de UITextField
- 9. UITextField Valor cambiado evento?
- 10. UILabel UITextField UITextView
- 11. UITextField texto borroso
- 12. UITextPosition en UITextField
- 13. UITextField Ejemplo en Cocos2d
- 14. UITextField en un UITableViewCell
- 15. UITextField RightView "WhileEditing" problema
- 16. ¿Cómo seleccionar un UITextField?
- 17. Agregar etiqueta a UITextField
- 18. Autocompletar de UITextField personalizado
- 19. UITextField ¿texto en negrita?
- 20. Establecer UITextField Longitud máxima
- 21. sangría en UITextField
- 22. resignFirstResponder entendimiento con UITextField
- 23. ¿Ajustar texto en UITextField?
- 24. Añadir UITextField a UIToolbar
- 25. Detectar UITextField Lost Focus
- 26. Deshabilitar lupa en UITextField
- 27. IOS: UItextfield deshabilitado
- 28. UITextField rightViewMode comportamiento impar
- 29. UITextField color de borde
- 30. UITextField Alineación vertical
En realidad esto no funciona. Esto es lo que tengo: \t UIButton * detailButton = [[UIButton alloc] init]; \t [detailButton setImage: [UIImage imageNamed: @ "textview-list-icon.png"] forState: UIControlStateNormal]; \t self.propertyField.leftView = detailButton; \t [release DetailButton]; El código se compila y se ejecuta sin ningún error o advertencia en la consola, pero el botón no se muestra. ¿He entendido mal esto? Gracias. –
Intenta configurar el marco del botón.A menos que especifique un marco, no sabrá dónde y cómo dibujarse, por lo que no lo verá. Es por eso que generalmente desea utilizar initWithFrame en lugar de init para las subclases de UIView, por lo que no tendrá que preocuparse por configurarlo más tarde. –