ios获取键盘高度(js获取ios键盘高度)

gzcvt.com 阅读:113 2024-04-04 22:11:00 评论:0

标题:iOS获取键盘高度

简介:

在iOS开发中,获取键盘高度是一个常见的需求。本文将介绍几种获取键盘高度的方法,并详细说明每种方法的使用步骤和注意事项。

一、使用NSNotification

1.1 监听键盘弹出通知

1.2 获取键盘高度

1.3 处理键盘收起通知

二、使用UIResponder

2.1 获取被键盘遮挡视图的底部位置

2.2 监听键盘弹出和收起事件

2.3 计算键盘高度

三、使用UITextInputDelegate

3.1 设置UIViewController为UITextInputDelegate的实现者

3.2 实现相应的代理方法

3.3 获取键盘高度

内容详细说明:

1. 使用NSNotification

1.1 监听键盘弹出通知

在需要获取键盘高度的UIViewController中,添加如下代码:

```

NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow(notification:)), name: UIResponder.keyboardWillShowNotification, object: nil)

```

1.2 获取键盘高度

在UIViewController中实现键盘弹出通知的处理方法,代码如下:

```

@objc func keyboardWillShow(notification: NSNotification) {

if let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue {

let keyboardHeight = keyboardSize.height

// 处理键盘弹出逻辑

}

```

1.3 处理键盘收起通知

在UIViewController中添加键盘收起通知的监听和处理方法,代码如下:

```

NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide(notification:)), name: UIResponder.keyboardWillHideNotification, object: nil)

```

```

@objc func keyboardWillHide(notification: NSNotification) {

// 处理键盘收起逻辑

```

2. 使用UIResponder

2.1 获取被键盘遮挡视图的底部位置

在UIViewController中实现如下方法,用于获取被键盘遮挡视图的底部位置:

```

private func viewBottomPosition() -> CGFloat {

return view.frame.origin.y + view.frame.height

```

2.2 监听键盘弹出和收起事件

在需要获取键盘高度的UIViewController中,添加如下代码:

```

NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow(notification:)), name: UIResponder.keyboardWillShowNotification, object: nil)

NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide(notification:)), name: UIResponder.keyboardWillHideNotification, object: nil)

```

2.3 计算键盘高度

在UIViewController中实现键盘弹出和收起事件的处理方法,代码如下:

```

@objc private func keyboardWillShow(notification: NSNotification) {

if let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue {

let keyboardHeight = keyboardSize.height

let bottomPosition = viewBottomPosition()

let keyboardOverlap = bottomPosition - keyboardHeight

// 处理键盘弹出逻辑

}

@objc private func keyboardWillHide(notification: NSNotification) {

// 处理键盘收起逻辑

```

3. 使用UITextInputDelegate

3.1 设置UIViewController为UITextInputDelegate的实现者

在UIViewController中设置自身为UITextInputDelegate的实现者,代码如下:

```

class MyViewController: UIViewController, UITextInputDelegate {

```

3.2 实现相应的代理方法

在UIViewController中实现相应的UITextInputDelegate代理方法,代码如下:

```

extension MyViewController {

func selectionWillChange(_ textInput: UITextInput?) {

}

func selectionDidChange(_ textInput: UITextInput?) {

}

func textWillChange(_ textInput: UITextInput?) {

}

func textDidChange(_ textInput: UITextInput?) {

}

```

3.3 获取键盘高度

在UITextInputDelegate的代理方法中,可以获取键盘高度并进行相应的处理。

总结:

本文介绍了使用NSNotification、UIResponder和UITextInputDelegate三种方法获取键盘高度的步骤和注意事项。开发者可以根据自己的实际需求选择适合的方法来获取键盘高度,并进行相应的逻辑处理。

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。