Я хочу реализовать интерфейс, который очень похож на приложение imessage.Я прочитал много тем, посмотрел много видео и до сих пор не понимаю, как это работает точно, похоже, что люди делают вещи случайно.
Вот вопрос: я хочу поместить UITextView поверхклавиатура, как inputAccessoryView, чтобы разрешить ".интерактивное" отклонение клавиатуры (и иметь панель с UITextView в ней, перемещаясь с клавиатурой при отклонении или показывая жест).Я просто хочу что-то в точности как в приложении iMessage или Facebook Messenger.
Итак, я увидел, что мне нужно поместить это в colletionViewController, где у меня есть исторические сообщения (я до сих пор не понимаю, почему я долженпоместите его в UICollectionView):
override var inputAccessoryView: UIView? {
get
{
let v = UIView(frame : CGRect(x:0,y:0,width:100,height:50))
v.backgroundColor = .red
return v
}
}
override var canBecomeFirstResponder: Bool {
get { return true }
}
Когда я это делаю, красная полоса не отображается, когда я запускаю приложение.Я перепробовал много вещей.Я пытался стать FirstResponder () в коллекции viewDidLoad, но безрезультатно.Я попытался reloadInputView (), тоже безрезультатно.Я также попытался myinstanceTextView.becomeFirstResponder () в collectionView.viewDidLoad (), ничего.Я хочу в основном функцию для управления клавиатурой, как это:
self.showKeyboardAndItsAccessoiryView() // when the user types something
self.showOnlyAccessoiryView() // when the user do other things in the historic
self.showNothing() // hide keyboard and its accessoryview, when the user go to another page, we don't want the bottom bar any more.