如何像在iMessage应用程序中一样实现inputAccessoryView?

时间:2019-03-16 20:17:11

标签: ios swift uicollectionview keyboard first-responder

我想实现一个看起来非常简单的应用程序接口。我读了很多主题,看了很多视频,但我仍然不明白它是如何精确运行的,好像人们在随机地做事。

这里是一个问题:我想将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.

0 个答案:

没有答案