当用户点击按钮时,我想要弹出键盘(这很容易),但我想要一个随之上升的视图(坚持键盘的顶部)。这个视图将有一个“发送消息..”文本字段。当用户推完时,我希望键盘随视图一起消失。
如何让这个视图“粘住”键盘?
答案 0 :(得分:1)
UITextFields有一个名为inputAccessoryView
的属性- Relevant Stack Overflow Answer
这会将您指定的任何视图固定为文本字段的inputAccessoryView到键盘顶部。
要记住的链接中的答案很重要:
请注意,您使用的视图既不应该在其他地方的视图层次结构中,也不应该将其添加到某个超级视图中,这是为您完成的。
答案 1 :(得分:0)
转到故事板并在viewController底部添加一个视图(让我们称之为topKeyboardView)。并给它以下约束:
底部空间到底部布局= 0
然后添加textfield *(我更喜欢使用textView使其在消息太长时更改其高度...)* 和你的按钮(发送)在topKeyboardView之上。
现在让代码.. 转到viewController.swift并将一个IBOutlet添加到textField和button并添加此函数:
//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()
}
运行它......