gpt4 book ai didi

ios - 键盘管理阻塞 UITextView

转载 作者:行者123 更新时间:2023-11-28 06:53:19 26 4
gpt4 key购买 nike

所以我遵循了苹果关于在键盘上方移动文本的指南,当文本字段在 ScrollView 上时这很好用,但是 ScrollView 包含一个 Collection View 并且该 Collection View 加载了一个 Nib ,其中填充了文本字段,它们都被分配为代表,当他们被按下时,代表的 didEdit/endEdit 函数会触发,但是键盘管理代码没有按预期工作......这是键盘管理代码

http://creativecoefficient.net/swift/keyboard-management/

这是我正在使用的代码的链接..

func keyboardWillBeShown(sender: NSNotification) {
print("KEYBOARD SHOWN")

let info: NSDictionary = sender.userInfo!
let value: NSValue = info.valueForKey(UIKeyboardFrameBeginUserInfoKey) as! NSValue
let keyboardSize: CGSize = value.CGRectValue().size
let contentInsets: UIEdgeInsets = UIEdgeInsetsMake(0.0, 0.0,keyboardSize.height, 0.0)
print(keyboardSize.height)
ScrollView.contentInset = contentInsets
ScrollView.scrollIndicatorInsets = contentInsets

// If active text field is hidden by keyboard, scroll it so it's visible
// Your app might not need or want this behavior.


var aRect: CGRect = self.view.frame
aRect.size.height -= keyboardSize.height
let activeTextFieldOrigin: CGPoint? = activeTextFieldRect?.origin
if (!CGRectContainsPoint(aRect, activeTextFieldOrigin!)) {
let dHeight = displayView.frame.height

ScrollView.scrollRectToVisible(activeTextFieldRect!, animated:true)
}

此代码的问题是 activeTextfield 与 View 的文本字段配合得很好,当我单击文本字段时我打印了这些点

activetextfield Frame
(0.0, 20.5, 150.0, 20.5)

但是当我点击 Collection View Nib 文本字段时,我得到了这些点

0.0, 0.0, 259.5, 30.0

我相信这就是键盘阻塞文本字段的原因,activetextfieldRect 给了错误的坐标

ScrollView.scrollRectToVisible(activeTextFieldRect!, animated:true)  

有人可以指导我如何解决这个问题吗?

最佳答案

是的,你是对的。 scrollRectToVisible 收到错误的坐标,这就是它不起作用的原因。

要实现您的目标,请考虑使用 scrollToItemAtIndexPath(_:atScrollPosition:animated:) .您所需要的只是要移动的单元格的 IndexPath。我想您可以将该信息放在 textFieldtag 属性中(例如)。

像这样:

// inside cellForItem..
cell.textField.tag = indexPath.item

// inside keyboardWillShown
let indexPath = NSIndexPath(forItem: activeTextField.tag inSection: 0) // assume that you have one section
collectionView.scrollToItemAtIndexPath(indexPath, atScrollPosition: .Top, animated: true) // or try .Center position

关于ios - 键盘管理阻塞 UITextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34362776/

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