如何在键盘上方显示视图?

当用户点击一个button,我想键盘popup(这很容易),但我想要一个与它一起上升的视图(坚持到键盘的顶部)。 这个视图将会有一个“发送消息”的文本框。 当用户推动完成时,我希望键盘随视图一起消失。

我如何使这个观点“粘”到键盘上?

UITextFields有一个名为inputAccessoryView的属性

– 苹果文档

– 相关的堆栈溢出答案

这将把您分配的任何视图作为该文本框的inputAccessoryView固定在键盘的顶部。

从那个链接的答案中重要的东西要记住:

请注意,您使用的视图既不应该在其他地方的视图层次结构中,也不应将其添加到某个超级视图,这是为您完成的。

去你的故事板,并添加一个视图(让我们称之为topKeyboardView)在viewController的底部。 并给它以下约束:

底部空间到底部布局= 0

底部空间到底部布局= 0

然后添加文本字段*(我喜欢使用textView,当消息变得太长时,它会改变它的高度)*和你的button(发送)topKeyboardView顶部。

现在让代码..去你的viewController.swift并添加一个IBOutlet到你的textField和button,并添加此function:

//this is will tell if the keyboard hidden or not func addKeyboardNotifications() { NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name:UIKeyboardWillShowNotification, object: nil) NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name:UIKeyboardWillHideNotification, object: nil) } // MARK:- Notification func keyboardWillShow(notification: NSNotification) { print("keyboard is up") } func keyboardWillHide(notification: NSNotification) { print("keyboard is down") } 

在你的viewDidLoad调用该函数:

  override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. addKeyboardNotifications() } 

运行…