我的問題是非常專門針對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