gpt4 book ai didi

ios - UIScrollView 在键盘上向上滚动

转载 作者:行者123 更新时间:2023-12-02 05:29:57 26 4
gpt4 key购买 nike

问题陈述:我有 UIView 的 Nib 文件包含 UIScrollview,在 ScrollView 中我有几个 TextFields 和底部的 TextView。我想要的是当文本字段或 TextView 开始编辑时向上滚动。

我尝试过:

在客户方法中

NotificationCenter.default.addObserver(self, selector: #selector(keyboardWasShown(notification:)), name: NSNotification.Name.UIKeyboardWillShow, object: nil)

我正在调用此方法父 View 。

通知处理:

func keyboardWasShown(notification: NSNotification)
{
var userInfo = notification.userInfo!
var keyboardFrame:CGRect = (userInfo[UIKeyboardFrameBeginUserInfoKey] as! NSValue).cgRectValue
keyboardFrame = self.convert(keyboardFrame, from: nil)

var contentInset:UIEdgeInsets = self.mainScroll.contentInset
contentInset.bottom = keyboardFrame.size.height
self.mainScroll.contentInset = contentInset
}

这对于 UITextFields 来说工作得很好,但对于 UITextView 来说却不起作用。知道错误在哪里。

PS:我也设置了UITextField和UITextView的委托(delegate)。

任何帮助将不胜感激。

最佳答案

将 KeyboardWasShown 函数替换为以下函数:

 func keyboardWasShown(notification: NSNotification)
{
var userInfo = notification.userInfo!
var keyboardFrame:CGRect = (userInfo[UIKeyboardFrameBeginUserInfoKey] as! NSValue).cgRectValue
keyboardFrame = self.convert(keyboardFrame, from: nil)
self.mainScroll.contentOffset = CGPoint(x: 0, y: keyboardFrame.size.height - Any number that fits your need.)
}

在 keyBoardWillHide 中:

self.mainScroll.contentOffset = CGPoint(x: 0, y: 0)

希望能有所帮助。快乐编码!

关于ios - UIScrollView 在键盘上向上滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42899098/

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