我有一個UICollectionViewController與inputAccessoryView。一切都很好,直到我呈現一個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但沒有後無濟於事。打印(view.isFirstResponder)仍然打印false
。我在代碼中的許多不同的地方嘗試了幾乎所有上述三行的組合。我想我錯過了一些簡單的東西。
有意思。我認爲只有textFields和textViews有一個inputAccessoryView ...無論如何:我認爲對於inputAccessoryView在屏幕上它屬於的視圖必須是當前的響應者...但是因爲你提交了一個viewControlle ...它已經現在你需要讓它的視圖再次成爲firstResponder ...我猜快速解決方案是將'view.becomeFirstResponder()'放在你的'viewDidAppear'裏面,以確保inputAccessoryView在你每次來到屏幕。 – Honey
我在這裏找到了,如果你真的有興趣,可以跳到15:00:https://www.youtube.com/watch?v =ky7YRh01by8謝謝你的建議! –
我的建議是否有效? – Honey