加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

我们如何让键盘出现在swift中的textView下面?

发布时间:2020-12-14 04:44:34 所属栏目:百科 来源:网络整理
导读:我用键盘出现在textfield下面 在View上加载添加观察者() NSNotificationCenter.defaultCenter().addObserver(self,selector: #selector(Gold_Loan_First_ViewController.keyboardDidShow(_:)),name: UIKeyboardDidShowNotification,object: nil) NSNotificat
我用键盘出现在textfield下面

在View上加载添加观察者()

NSNotificationCenter.defaultCenter().addObserver(self,selector: #selector(Gold_Loan_First_ViewController.keyboardDidShow(_:)),name: UIKeyboardDidShowNotification,object: nil)

    NSNotificationCenter.defaultCenter().addObserver(self,selector: #selector(Gold_Loan_First_ViewController.keyboardWillBeHidden(_:)),name: UIKeyboardWillHideNotification,object: nil)

然后更新框架

weak var activeField: UITextField?

func textFieldDidEndEditing(textField: UITextField) {
    self.activeField = nil


}
func textField(textField: UITextField,shouldChangeCharactersInRange range: NSRange,replacementString string: String) -> Bool {
    if textField==txtOTP {
        txtOTP.errorMessage=""
    }
  return true
}
func textFieldDidBeginEditing(textField: UITextField) {
    self.activeField = textField

}




func keyboardDidShow(notification: NSNotification)
{
    if let activeField = self.activeField,let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() {
        let contentInsets = UIEdgeInsets(top: 0.0,left: 0.0,bottom: keyboardSize.height,right: 0.0)
        self.scrollView.contentInset = contentInsets
        self.scrollView.scrollIndicatorInsets = contentInsets
        var aRect = self.view.frame
        aRect.size.height -= keyboardSize.size.height
        if (!CGRectContainsPoint(aRect,activeField.frame.origin)) {
            self.scrollView.scrollRectToVisible(activeField.frame,animated: true)
        }
    }


}

func keyboardWillBeHidden(notification: NSNotification)
{
    let contentInsets = UIEdgeInsetsZero
    self.scrollView.contentInset = contentInsets
    self.scrollView.scrollIndicatorInsets = contentInsets
}

但是我如何为textView做到这一点.我用textView的didBeginEditing尝试了相同的代码,没有任何积极的影响

解决方法

其中一个简单且无代码的解决方案是在您的应用中使用以下pod.

IQKeyboardManger

稍后你需要在App Delegate中导入它,并在didfinishLaunching方法中添加这两行代码:

IQKeyboardManager.sharedManager().enable = true

整个应用程序将解决您的问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读