私はinputAccessoryViewを持つUICollectionViewControllerを持っています。 UIViewControllerを表示してアクセサリビューが消えるまで、すべてがうまく動作します。基本的なチャットアプリケーションの機能を取得しようとしています。inputAccessoryViewは、UIViewControllerを提示すると消えます。
私はコレクションビューで実装している:他の複数のスレッドで示唆したように
override var inputAccessoryView: UIView? {
get {
return inputContainerView
}
}
override var canBecomeFirstResponder: Bool {
return true
}
override func becomeFirstResponder() -> Bool {
return true
}
が、私も(コレクションビューで)を呼び出し、
view.resignFirstResponder()
view.inputAccessoryView?.reloadInputViews()
view.becomeFirstResponder()
のUIViewControllerしかし、誰に退去した後利用可能。 print(view.isFirstResponder)はまだfalse
を出力します。私は上記の3つの行のほとんどすべての組み合わせを自分のコードのさまざまな場所で試しました。私は単純なものが欠けていると思う。
興味深い。私はtextFieldsとtextViewsだけがinputAccessoryViewを持っていたと思っていました。なぜなら、私はinputAccessoryViewがスクリーン上にあると思っています。それは、現在のレスポンダでなければなりません...しかし、viewControlleを提示したので...私はすぐにあなたの 'viewDidAppear'の中に' view.becomeFirstResponder() 'を置くことになるだろうと思っています。これはinputAccessoryViewがあなたに来るたびにそこにいることを保証しています。画面。 – Honey
私がここで見つけたのは、本当に興味がある場合は15:00にスキップします:https://www.youtube.com/watch?v=ky7YRh01by8提案していただきありがとうございます! –
私の提案はうまくいきましたか? – Honey