gpt4 book ai didi

cocoa-touch - 如何使用 Swift 在键盘出现时向上移动 UIViewController 的内容

转载 作者:搜寻专家 更新时间:2023-11-01 06:24:48 24 4
gpt4 key购买 nike

我想在键盘出现时向上移动 UIViewController 底部的内容。在 View Controller 的底部,我有一个 UITextField,当用户单击它时,键盘会出现并阻止它,因此用户无法看到他们在 UITextField 中输入的内容。

我的 UITextField 声明如下:

@IBOutlet var startTime : UITextField

我需要一个 UIScrollView 来完成这个吗?或者有没有办法在键盘出现时向上移动页面的内容。

最佳答案

有很多方法可以实现这一点,但您始终需要收听与键盘相关的通知才能做到这一点。它们的工作方式与 obj-c 的相同。下面的简化示例显示了如何在键盘出现时将文本字段向上移动,并在键盘消失时将其向下移动。以下示例是 UIViewController 的实现。

override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name:UIKeyboardWillShowNotification, object: nil);
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name:UIKeyboardWillHideNotification, object: nil);
}

deinit {
NSNotificationCenter.defaultCenter().removeObserver(self);
}

func keyboardWillShow(sender: NSNotification) {
let s:NSValue = sender.userInfo.valueForKey(UIKeyboardFrameEndUserInfoKey) as NSValue;
let rect :CGRect = s.CGRectValue();
var frame = self.textField.frame;
frame.origin.y = frame.origin.y - rect.height;
self.textField.frame = frame;
}

func keyboardWillHide(sender: NSNotification) {
let s:NSValue = sender.userInfo.valueForKey(UIKeyboardFrameBeginUserInfoKey) as NSValue;
let rect :CGRect = s.CGRectValue();
var frame = self.textField.frame;
frame.origin.y = frame.origin.y + rect.height;
self.textField.frame = frame;
}

关于cocoa-touch - 如何使用 Swift 在键盘出现时向上移动 UIViewController 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24097831/

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