2011-08-07 12 views
16

Próbowałem tego dodać UITextField do UIToolbar ale dostałem błąd czasu z powodu, jak: [UITextField view]: nierozpoznany selektor przesłanym przykład ...Dodaj UITextField do UIToolbar

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

Pasek jest instancja UIToolbar i textField jest instancją UITextField.

Odpowiedz

39

Model items z UIToolbar musi być typu UIBarButtonItem. Użyj initWithCustomView:, aby utworzyć element paska narzędzi, który zawiera twoje pole tekstowe. Odpowiedź

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

+1 za odpowiedź. – user523234

0

OMZ jest nadal powyżej odpowiedziałeś na moje pytanie w 2017 roku, ale tutaj jest aktualizacji do iOS 10 i Swift 3. Mam zamiar utworzyć UIToolbar, który ma po lewej i prawej stronie UITextField i .flexibleSpace do wyśrodkowania pola tekstowego na pasku narzędzi.

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) 

Można oczywiście skrócić powyższy kod i dodać UIToolbar „s obramowanie itp ale powyższe powinny być bardziej«czytelny»Przykładem specjalnie dodanie UITextField jako UIBarButtonItem.

Mam nadzieję, że to pomoże!