2014-11-28 3 views
1

Мне нужно, чтобы при нажатии кнопки «Готово» на моей панели инструментов, которая является дополнительным видом текстового поля, отпустите клавиатуру.UIBarButtonItem при нажатии ничего не делает

func textFieldShouldBeginEditing(textField: UITextField) -> Bool { 
    var toolBar = UIToolbar() 
    var buttonOnToolbar = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: self, action: "dismiss") 
    let arrayOfButtons = [buttonOnToolbar] 
    toolBar.items = arrayOfButtons 
    toolBar.barTintColor = UIColor.whiteColor() 
    textField.inputAccessoryView = toolBar 
    return true 
} 

func dismiss(sender: UIBarButtonItem) { 
    println("cacca") 
} 

Функция увольняет только при попытке проверить, что-то происходит при нажатии кнопки. Но когда я нажимаю, ничего не происходит. Кроме того, панель инструментов, хотя я изменил цвет, остается прозрачным. Что не так?

EDIT: Решенный, UIToolbar не имеет размера.

ответ

3

Проблема заключается в неправильном селекторе:

dismiss 

выбирает метод, который не принимает никаких аргументов. Но ваш метод принимает один аргумент:

func dismiss(sender: UIBarButtonItem) 

Так что ваш селектор должен быть так:

dismiss: 

Э.Г.

UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: self, action: "dismiss:") 
+0

Я изменил код, но ничего не произошло :( – Maaarcocr

Смежные вопросы