gpt4 book ai didi

iOS/Swift - 第一次使用后无法让键盘外观移动 View

转载 作者:行者123 更新时间:2023-11-28 08:00:29 25 4
gpt4 key购买 nike

我花了将近一天的时间尝试了各种文章和教程中的许多不同方法,但我无法获得完全有效的解决方案来解决我的问题。 (这让我有点发疯)

编辑文本字段时,弹出键盘, View 随键盘上移。但是,这只会在应用程序重新启动后第一次编辑文本字段时发生。键盘随 View 一起消失,在 View 上的任何其他地方被按下。下一次编辑文本字段时,键盘会向上移动,但 View 不会向上移动,并且文本字段位于键盘下方。

这是我当前的代码:

    override func viewDidLoad() {

super.viewDidLoad()

let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard))

tap.cancelsTouchesInView = false

view.addGestureRecognizer(tap)
}

override func viewWillAppear(_ animated: Bool) {

super.viewDidAppear(animated)

NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)

}

override func viewWillDisappear(_ animated: Bool) {

super.viewWillDisappear(animated)

NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardWillShow, object: nil)
NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardWillHide, object: nil)
}


func dismissKeyboard() {

view.endEditing(true)
}


func keyboardWillShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
if self.view.frame.origin.y == 0{
self.view.frame.origin.y -= keyboardSize.height
}
}
}

func keyboardWillHide(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
if self.view.frame.origin.y != 0{
self.view.frame.origin.y += keyboardSize.height
}
}
}

提前感谢您提供的任何帮助。

最佳答案

你应该在你的项目中使用 IQKeyboardManagerSwift cocoa pod 它会解决你的问题您可以在这里找到图书馆:https://github.com/hackiftekhar/IQKeyboardManager

并根据给定的说明使用它。

谢谢!

关于iOS/Swift - 第一次使用后无法让键盘外观移动 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46793935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com