Добавить UITextField в UIToolbar - PullRequest
       5

Добавить UITextField в UIToolbar

16 голосов
/ 07 августа 2011

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

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

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

Ответы [ 2 ]

41 голосов
/ 07 августа 2011

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

UIBarButtonItem *textFieldItem = [[UIBarButtonItem alloc] initWithCustomView:textField];
toolbar.items = @[textFieldItem];
1 голос
/ 11 июня 2017

Ответ OMZ выше все еще ответил на мой вопрос в 2017 году, но вот обновление для iOS 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 и т. Д., Но приведенный выше должен быть более «разборчивым» примером конкретного добавления UITextField в качестве UIBarButtonItem.

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

...