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

时间:2016-01-29 21:08:01

标签: ios swift

当用户点击按钮时,我想要弹出键盘(这很容易),但我想要一个随之上升的视图(坚持键盘的顶部)。这个视图将有一个“发送消息..”文本字段。当用户推完时,我希望键盘随视图一起消失。

如何让这个视图“粘住”键盘?

2 个答案:

答案 0 :(得分:1)

UITextFields有一个名为inputAccessoryView

的属性

- Apple Documentation

- Relevant Stack Overflow Answer

这会将您指定的任何视图固定为文本字段的inputAccessoryView到键盘顶部。

要记住的链接中的答案很重要:

  

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

答案 1 :(得分:0)

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

底部空间到底部布局= 0

bottom space to bottom layout = 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()
   }

运行它......