我想這的UITextField添加到UIToolbar,但有一個運行時錯誤與理由:[視圖的UITextField]:無法識別的選擇發送到實例...添加到的UITextField UIToolbar
[toolbar setItems:[NSArray arrayWithObjects:textField, nil]];
工具欄是一個UIToolbar和textField的實例是UITextField的一個實例。
我想這的UITextField添加到UIToolbar,但有一個運行時錯誤與理由:[視圖的UITextField]:無法識別的選擇發送到實例...添加到的UITextField UIToolbar
[toolbar setItems:[NSArray arrayWithObjects:textField, nil]];
工具欄是一個UIToolbar和textField的實例是UITextField的一個實例。
一個UIToolbar
的items
必須UIBarButtonItem
類型。使用initWithCustomView:
創建一個包含文本字段的工具欄項目。
UIBarButtonItem *textFieldItem = [[UIBarButtonItem alloc] initWithCustomView:textField];
toolbar.items = @[textFieldItem];
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
更‘清晰’的例子。
我希望這有助於!
+1的回覆。 – user523234