Swift: кнопки inputAccessoryView не отображаются

Ниже приведен мой код для добавления inputAccessoryView (с кнопкой «Готово») в мой textView:

let keyboardButtonView = UIToolbar()
keyboardButtonView.sizeToFit()
let doneButton = UIBarButtonItem(image: nil, style: .Done, target: self, action: "closeMessageViewKeyboard")
doneButton.possibleTitles = ["Done"]
var toolbarButtons = NSMutableArray()
toolbarButtons.addObject(doneButton)
keyboardButtonView.items = toolbarButtons as [AnyObject]
messageView.inputAccessoryView = keyboardButtonView

Кнопка «Готово» никогда не появляется. Все, что я получаю, это белая панель аксессуаров. Я что-то пропустил здесь?


person Kashif    schedule 13.05.2015    source источник


Ответы (2)


Для меня я создаю дополнительный вид с помощью UINavigationBar следующим образом:

let navBar = UINavigationBar(frame: CGRectMake(0, 0, viewWidth, 44))
navBar.barStyle = UIBarStyle.BlackTranslucent;
navBar.backgroundColor = UIColor.blackColor();
navBar.alpha = 0.9;
//replace viewWidth with view controller width
let navItem = UINavigationItem()
let doneButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: self, action: "closeMessageViewKeyboard")
navItem.rightBarButtonItem = doneButton

navBar.pushNavigationItem(navItem, animated: false)

messageView.inputAccessoryView = navBar
person Hossam Ghareeb    schedule 13.05.2015
comment
проверьте обновленный код. забыл поставить рамку или UINavigationBar - person Hossam Ghareeb; 13.05.2015
comment
Теперь я вижу белую полосу поверх клавиатуры, но без кнопок. - person Kashif; 13.05.2015
comment
проверьте обновленный код, измените цвет фона на черный - person Hossam Ghareeb; 13.05.2015
comment
мы все еще что-то упускаем, полоса теперь черная, но все еще нет кнопки - person Kashif; 13.05.2015
comment
не могли бы вы изменить способ создания кнопки «Готово» следующим образом (проверьте обновленный ответ): let doneButton = UIBarButtonItem (barButtonSystemItem: UIBarButtonSystemItem.Done, target: self, action: closeMessageViewKeyboard) - person Hossam Ghareeb; 13.05.2015

1) Добавить себя? self.messageView.inputAccessoryView = вид клавиатуры

2) Вы должны иметь возможность удалить эту строку: doneButton.possibleTitles = ["Done"] и добавить (title: "done",...) к строке над ней.

3) У меня есть аналогичный код, и это, вероятно, не имеет значения, но вы можете добавить: keyboardButtonView.barStyle = UIBarStyle.Default

person TheTopBloke    schedule 31.05.2015