我想实现一个看起来非常简单的应用程序接口。我读了很多主题,看了很多视频,但我仍然不明白它是如何精确运行的,好像人们在随机地做事。
这里是一个问题:我想将UITextView作为inputAccessoryView放在键盘上,以便启用“ .interactive”键盘(并使带有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 }
}
当我这样做时,启动应用程序时红色条不会显示。我已经尝试了很多东西。我试图在集合viewDidLoad上成为FirstResponder(),但没有结果。我尝试了reloadInputView(),也没有结果。我还尝试了在collectionView.viewDidLoad()中使用myinstanceTextView.becomeFirstResponder(),什么也没有。我基本上想要一个这样的功能来控制键盘:
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.