Я добавил панель инструментов на свою раскадровку и также установил ее выход. Теперь, когда я перехожу к своему представлению с помощью панели инструментов, в viewDidLoad этого представления я написал следующее ...

postToolBar.removeFromSuperview()
contributeTextView.inputAccessoryView = postToolBar

Из-за этого, когда я перехожу к представлению и нажимаю на текстовое представление, которое я там назвал contributeTextView, на клавиатуре появляется панель инструментов, закрепленная сверху, вот так ...

enter image description here

Теперь, когда я нажимаю за пределами текстового представления, клавиатура отключается, как и панель инструментов с ней. Как я всегда фиксирую панель инструментов в самом низу ..? Панель инструментов также должна быть с клавиатурой, а когда клавиатура опускается, она должна быть зафиксирована внизу. Как я могу достичь этого ..?

0
user11100093 15 Май 2019 в 11:43

2 ответа

Лучший ответ

Примените этот трюк: - Добавьте две панели инструментов, одну из которых inputAccessoryView, как вы делаете сейчас, а другую добавьте в нижнюю часть представления контроллера. Надеюсь, это поможет.

0
vivekDas 15 Май 2019 в 09:35

Вы можете наблюдать уведомление клавиатуры, например:

NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillChangeFrame(notification:)), name: UIResponder.keyboardWillChangeFrameNotification, object: nil)

Затем в селекторе измените рамку панели инструментов, связанную с клавиатурой, например:

@objc private func keyboardWillChangeFrame(notification: Notification) {
        if let keyboardFrame = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue {
              var frame = toolBar.frame
              frame.origin.y = keyboardFrame.origin.y - frame.size.height
              toolBar.frame = frame
        }
  }

Это должно быть работой

0
Jack Chen 15 Май 2019 в 10:28