2011-08-07 4 views
16

Я попытался это добавить UITextField к UIToolbar, но получил сообщение об ошибке во время выполнения с разумом, как: [зрения UITextField]: непризнанный селектор послал к примеру ...Добавить UITextField в UIToolbar

[toolbar setItems:[NSArray arrayWithObjects:textField, nil]]; 

панели инструментов являются экземпляр UIToolbar и textField - это экземпляр UITextField.

ответ

39

items of UIToolbar должно быть типа UIBarButtonItem. Используйте команду initWithCustomView:, чтобы создать элемент панели инструментов, содержащий ваше текстовое поле. Ответ

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

+1 для ответа. – user523234

0

ОМЗА выше еще ответил на мой вопрос в 2017 году, но здесь обновления для прошивки 10 и Swift 3. Я собираюсь создать UIToolbar, у которого есть UITextField и .flexibleSpace с левой и с правой стороны, чтобы центрировать текстовое поле на панели инструментов.

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) 

Конечно, Вы можете сократить код выше и добавить UIToolbar «s кадров и т.д., но выше должна быть более„читаемым“пример специально добавления UITextField как UIBarButtonItem.

Надеюсь, это поможет!

Смежные вопросы