如何在键盘上方显示视图?
当用户点击一个button,我想键盘popup(这很容易),但我想要一个与它一起上升的视图(坚持到键盘的顶部)。 这个视图将会有一个“发送消息”的文本框。 当用户推动完成时,我希望键盘随视图一起消失。
我如何使这个观点“粘”到键盘上?
UITextFields有一个名为inputAccessoryView的属性
– 苹果文档
– 相关的堆栈溢出答案
这将把您分配的任何视图作为该文本框的inputAccessoryView固定在键盘的顶部。
从那个链接的答案中重要的东西要记住:
请注意,您使用的视图既不应该在其他地方的视图层次结构中,也不应将其添加到某个超级视图,这是为您完成的。
去你的故事板,并添加一个视图(让我们称之为topKeyboardView)在viewController的底部。 并给它以下约束:
底部空间到底部布局= 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() }
运行…