In einem UIViewController habe ich mehrere Textfelder und eine Schaltfläche befindet sich am unteren Rand des UIViewController. Für die Schaltfläche habe ich eine untere Einschränkung mit einer Konstante von 0 festgelegt. Dann habe ich eine Steckdose von der unteren Einschränkung auf den UIViewController gemacht.Bewegen Sie die Taste, wenn die Tastatur erscheint swift
Wenn ich meinen Code ausführen, bewegt sich die Schaltfläche nicht nach oben. Ich habe Vorschläge zu Stackoverflow gesehen, die ich UIScrollView hinzufügen sollte, aber das bedeutet, ich müsste alle Objekte auf dem UIViewController löschen, die UIScrollView setzen und dann meine Objekte wieder auf dem UIVIewController platzieren.
@IBOutlet weak var bottomConstraint: NSLayoutConstraint!
// When tapping outside of the keyboard, close the keyboard down
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.view.endEditing(true)
}
// Stop Editing on Return Key Tap. textField parameter refers to any textfield within the view
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
// when keyboard is about to show assign the height of the keyboard to bottomConstraint.constant of our button so that it will move up
func keyboardWillShow(notification: NSNotification) {
if let userInfo = notification.userInfo {
if let keyboardSize: CGRect = (userInfo[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() {
bottomConstraint.constant = keyboardSize.size.height
view.setNeedsLayout()
}
}
}
// When keyboard is hidden, move the button to the bottom of the view
func keyboardWillHide(notification: NSNotification) {
bottomConstraint.constant = 0.0
view.setNeedsLayout()
}
ich die Beobachter hinzugefügt und es funktionierte jedoch @ Ryan sagte, dass meine Umsetzung wird unerwartetes Verhalten aufgrund der verschiedenen iPhone-Bildschirmgrößen ausgesetzt werden.Er schlug eine Methode vor, aber es hat nicht funktioniert.Der Knopf hebt nicht mit der Tastatur, die Tastatur gibt nicht mehr zurück, wenn Sie außerhalb tippen, wenn Sie klopfen außerhalb der tastatur, die programmatische taste habe ich nun nicht mehr angezeigt, auf iphone 6 ist die taste nach unten gepinnt des Bildschirms, aber auf anderen Bildschirmen sieht das anders aus: 'nextButton.frame = CGRectMake (0, 620, 375, 50)'. Kannst du helfen? – bibscy
Sieh dir das an: http://StackOverflow.com/a/32783960/846780 – Klevison