标签贴在键盘上

时间:2018-02-21 12:58:01

标签: ios swift

如何使用发送按钮添加块以使其随键盘移动。而且textview的表现也是一样的。

预览

enter image description here

2 个答案:

答案 0 :(得分:1)

在控制器中添加此代码

func createInputAccessoryView () -> UIToolbar {

        let toolbarAccessoryView = UIToolbar(frame: CGRect(x: 0, y: 0, width: self.view.bounds.size.width, height: 44))
        toolbarAccessoryView.barStyle = .default
        toolbarAccessoryView.tintColor = UIColor.blue
        let flexSpace = UIBarButtonItem(barButtonSystemItem:.flexibleSpace, target:nil, action:nil)
        let doneButton = UIBarButtonItem(barButtonSystemItem:.done, target:self, action:Selector(("doneTouched")))
        toolbarAccessoryView.setItems([flexSpace, doneButton], animated: false)

        return toolbarAccessoryView
    }

    @objc func doneTouched() {
        /* Your action goes here */
    }

现在将其添加到viewDidLoad或任何地方

yourTextView.inputAccessoryView = createInputAccessoryView ()

答案 1 :(得分:0)

设计块视图,然后将它的底部约束作为IBOutlet附加并执行此操作

override func viewDidLoad() {
    super.viewDidLoad()            
    NotificationCenter.default.addObserver(self, selector: #selector(ViewController.keyboardWillShow), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
    NotificationCenter.default.addObserver(self, selector: #selector(ViewController.keyboardWillHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)    
}

@objc func keyboardWillShow(notification: NSNotification) {        
    if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {

        self.viewBotCon.constant = -1 * keyboardSize.height

        self.view.layoutIfNeeded()

    }        
}

@objc func keyboardWillHide(notification: NSNotification) {

      self.viewBotCon.constant = 0

      self.view.layoutIfNeeded()
}