我尝试将UITextField添加到ui工具栏,但得到一个运行时错误,原因为:[UITextField视图]:无法识别的选择器发送到实例…
[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
。
我希望这对你有帮助!