2011-08-07 11 views
16

yo probamos este UITextField para añadir a un UIToolbar pero tiene un error de tiempo de ejecución con la razón común: [Ver UITextField]: Selector no reconocido enviado a la instancia ...Añadir UITextField a UIToolbar

barra de herramientas
[toolbar setItems:[NSArray arrayWithObjects:textField, nil]]; 

es una instancia de UIToolbar y textField es una instancia de UITextField.

Respuesta

39

El items de un UIToolbar tiene que ser del tipo UIBarButtonItem. Use initWithCustomView: para crear un elemento de barra de herramientas que contenga su campo de texto. respuesta

UIBarButtonItem *textFieldItem = [[UIBarButtonItem alloc] initWithCustomView:textField]; 
toolbar.items = @[textFieldItem]; 
+0

+1 para responder. – user523234

0

de omz anterior todavía respondió a mi pregunta en 2017, pero aquí es una actualización de IOS 10 y Swift 3. Voy a crear un UIToolbar, que tiene un UITextField y .flexibleSpace en sus lados izquierdo y derecho para centrar el campo de texto dentro de la barra de herramientas.

let toolbar = UIToolbar() 
let flexibleBarButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: self, action: nil) 
let textfield = UITextField() 
let textfieldBarButton = UIBarButtonItem.init(customView: textfield) 
// UIToolbar expects an array of UIBarButtonItems: 
toolbar.items = [flexibleBarButton, textfieldBarButton, flexibleBarButton] 
view.addSubview(toolbar) 

Por supuesto, puede acortar el código anterior y agrega el UIToolbar 's de cuadros, etc., pero lo anterior debe ser un ejemplo más 'legible' de añadir específicamente un UITextField como UIBarButtonItem.

Espero que esto ayude!