我尝试将UITextField添加到UIToolbar,但出现了运行时错误,原因是:“[UITextField view]:向实例发送未识别的选择器…”
[toolbar setItems:[NSArray arrayWithObjects:textField, nil]];
toolbar是UIToolbar的一个实例,textField是UITextField的一个实例。
我尝试将UITextField添加到UIToolbar,但出现了运行时错误,原因是:“[UITextField view]:向实例发送未识别的选择器…”
[toolbar setItems:[NSArray arrayWithObjects:textField, nil]];
toolbar是UIToolbar的一个实例,textField是UITextField的一个实例。
UIToolbar
的 items
必须是 UIBarButtonItem
类型。使用 initWithCustomView:
创建一个包含文本字段的工具栏项。
UIBarButtonItem *textFieldItem = [[UIBarButtonItem alloc] initWithCustomView:textField];
toolbar.items = @[textFieldItem];
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
添加。
希望这能帮到您!