2011-08-07 122 views
16

我想这的UITextField添加到UIToolbar,但有一个运行时错误与理由:[视图的UITextField]:无法识别的选择发送到实例...添加到的UITextField UIToolbar

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

工具栏是一个UIToolbar和textField的实例是UITextField的一个实例。

回答

39

一个UIToolbaritems必须UIBarButtonItem类型。使用initWithCustomView:创建一个包含文本字段的工具栏项目。

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

+1的回覆。 – user523234

0

OMZ的回答仍然以上回答我的问题在2017年,但这里是更新到iOS 10和斯威夫特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更‘清晰’的例子。

我希望这有助于!