2011-08-07 26 views
16

tôi đã cố gắng này để thêm UITextField đến một UIToolbar nhưng có một lỗi thời gian chạy với lý do như: [UITextField xem]: chọn không được công nhận gửi đến dụ ...Thêm UITextField để UIToolbar

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

thanh công cụ là một instance của UIToolbar và textField là một thể hiện của UITextField.

Trả lời

39

items của UIToolbar phải thuộc loại UIBarButtonItem. Sử dụng initWithCustomView: để tạo mục thanh công cụ chứa trường văn bản của bạn. câu trả lời

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

+1 để trả lời. – user523234

0

OMZ của trên vẫn trả lời câu hỏi của tôi vào năm 2017 nhưng đây là một bản cập nhật lên iOS 10 và Swift 3. Tôi sẽ tạo một UIToolbar, có UITextField.flexibleSpace ở bên trái và phải để căn giữa trường văn bản trong thanh công cụ.

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) 

Bạn có thể dĩ nhiên rút ngắn mã trên và thêm 's UIToolbar khung vv nhưng ở trên nên một nhiều hơn 'rõ ràng' ví dụ về đặc biệt thêm một UITextField như một UIBarButtonItem.

Tôi hy vọng điều này sẽ hữu ích!