2011-08-07 63 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更‘清晰’的例子。

我希望這有助於!