gpt4 book ai didi

ios - 当键盘盖住它时向上移动文本字段

转载 作者:搜寻专家 更新时间:2023-10-31 21:50:04 25 4
gpt4 key购买 nike

我对 Objective C 不是很熟悉,想知道 Swift 中是否有解决这个问题的方法。

这是我正在玩的一个非常简单的 SingleView 应用程序。 UIView 继承自 UIControl。

我没有 UIScrollView,我不能把整个 View 向上移动吗?我相信键盘与此无关。

最佳答案

Apple 的推荐用 Swift 重新编码。

确保您的控件位于 ScrollView 上,并注意选择器字符串中的冒号。我使用变量 (activeField) 来指示事件文本字段。

var activeField: UITextField?

@IBAction func editingBegan(sender: UITextField) {
activeField = sender
}

override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
let center = NSNotificationCenter.defaultCenter()
center.addObserver(self, selector: "keyboardOnScreen:", name: UIKeyboardDidShowNotification, object: nil)
center.addObserver(self, selector: "keyboardOffScreen:", name: UIKeyboardDidHideNotification, object: nil)

}

func keyboardOnScreen(notification: NSNotification){
let info: NSDictionary = notification.userInfo!
let kbSize = info.valueForKey(UIKeyboardFrameEndUserInfoKey)?.CGRectValue().size
let contentInsets:UIEdgeInsets = UIEdgeInsetsMake(0.0, 0.0, kbSize!.height, 0.0)
scrollView.contentInset = contentInsets
scrollView.scrollIndicatorInsets = contentInsets
var aRect: CGRect = self.view.frame
aRect.size.height -= kbSize!.height
//you may not need to scroll, see if the active field is already visible
if (!CGRectContainsPoint(aRect, activeField!.frame.origin) ) {
let scrollPoint:CGPoint = CGPointMake(0.0, activeField!.frame.origin.y - kbSize!.height)
scrollView.setContentOffset(scrollPoint, animated: true)
}

}


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

关于ios - 当键盘盖住它时向上移动文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24170532/

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