Перемещение вида вверх только тогда, когда клавиатура закрывает поле ввода

Я пытаюсь создать экран ввода для iPhone. На экране есть несколько полей ввода. Большинство из них вверху экрана, но два поля находятся внизу. Когда пользователь пытается отредактировать текст в нижней части экрана, клавиатура выскочит и закроет экран. Я нашел простое решение для перемещения экрана вверх, когда это происходит, но в результате экран всегда перемещается вверх, а поля в верхней части экрана становятся недоступными, когда пользователь пытается их отредактировать.

Есть ли способ заставить экран перемещаться только при редактировании нижних полей?

Я использовал этот код, который нашел здесь :

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)
}

func keyboardWillShow(sender: NSNotification) {
    self.view.frame.origin.y -= 150
}

func keyboardWillHide(sender: NSNotification) {
    self.view.frame.origin.y += 150
}

139
задан Vaisakh KP 15 February 2019 в 09:43
поделиться