我的问题是非常专门针对iOS 10和Swift 3,因为ive尝试了多种解决方案,但这些问题并未解决,原因是swift 3.我也试过转换代码并启用遗留代码。所有这些都不起作用。Swift 3 - iOS 10 - UITextField - 如何自动隐藏键盘和自动移动文本字段
如果您可以发布代码和简单步骤来自动移动文本字段然后输入文本,并点击返回键,文本字段应该返回到原来的位置并且键盘消失,我将非常感激。
谢谢
我的问题是非常专门针对iOS 10和Swift 3,因为ive尝试了多种解决方案,但这些问题并未解决,原因是swift 3.我也试过转换代码并启用遗留代码。所有这些都不起作用。Swift 3 - iOS 10 - UITextField - 如何自动隐藏键盘和自动移动文本字段
如果您可以发布代码和简单步骤来自动移动文本字段然后输入文本,并点击返回键,文本字段应该返回到原来的位置并且键盘消失,我将非常感激。
谢谢
此示例适用于斯威夫特3:
延长UITextFieldDelegate
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
self.nicknameLabel.resignFirstResponder()
return true
}
viewDidLoad中:
override func viewDidLoad() {
super.viewDidLoad()
nicknameLabel.delegate = self
}
这里有一些对于斯威夫特3工作的提示: https://medium.com/@KaushElsewhere/how-to-dismiss-keyboard-in-a-view-controller-of-ios-3b1bfe973ad1#.2fw5cflmp
首先将UITextField放在滚动视图中。
然后这个小的扩展:
extension UIScrollView {
/// listen to keyboard event
func makeAwareOfKeyboard() {
NotificationCenter.default.addObserver(self, selector: #selector(self.keyBoardDidShow), name: NSNotification.Name.UIKeyboardDidShow, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(self.keyBoardDidHide), name: NSNotification.Name.UIKeyboardDidHide, object: nil)
}
/// move scroll view up
func keyBoardDidShow(notification: Notification) {
let info = notification.userInfo as NSDictionary?
let rectValue = info![UIKeyboardFrameBeginUserInfoKey] as! NSValue
let kbSize = rectValue.cgRectValue.size
let contentInsets = UIEdgeInsetsMake(0, 0, kbSize.height, 0)
self.contentInset = contentInsets
self.scrollIndicatorInsets = contentInsets
}
/// move scrollview back down
func keyBoardDidHide(notification: Notification) {
// restore content inset to 0
let contentInsets = UIEdgeInsetsMake(0, 0, 0, 0)
self.contentInset = contentInsets
self.scrollIndicatiorInsets = contentInsets
}
}
然后作出这样的滚动视图了解键盘的
override func viewDidLoad() {
super.viewDidLoad()
...
scrollView.makeAwareOfKeyboard()
...
}
感谢分享此。它适用于解决键盘与您的解决方案,如果文本字段是在页面底部怎么样。如何将文本字段向上移动,使键盘不会隐藏它。 – Umair