У меня есть viewController
EditMessage, в котором есть два UITextFields
(UITextView), которые используют клавиатуру, и они прекрасно работают. Эта часть является основным стандартным материалом. Когда отображается клавиатура, я регистрирую жест тега для всего view
, поэтому, если пользователь щелкает где-либо еще, я отклоняю клавиатуру:
self.view.addGestureRecognizer(UITapGestureRecognizer(target: self,
action: #selector(dismissKeyboard)))
В dismissKeyboard все отлично работает:
@objc func dismissKeyboard(sender: Any) {
self.view.endEditing(true)
}
Однако у меня есть кнопка меню (миниатюра изображения), реализованная как контроллер дочернего представления (UIViewController
) в том же представлении EditMessage, которое перехватывает экран с помощью UIApplication.shared.keyWindow()
для отображения наложения и меню в нижней части экран. Построен с использованием модели / кода из канала Брайана Вонга YouTube для воспроизведения слайда в стиле YouTube в меню снизу. Тем не менее, клавиатура в пути. Поскольку дочерний объект является другим контроллером представления «endEditing» не работает (или, возможно, я ссылаюсь на неправильное представление?).
class ButtonPickerController : UIViewController,
UIGestureRecognizerDelegate, UINavigationControllerDelegate {
var maxSize = CGFloat(60)
let thumbnail: UIImageView = {
let thumbnail = UIImageView()
thumbnail.backgroundColor = UIColor.lightGray
return thumbnail
}()
override func viewDidLoad() {
super.viewDidLoad()
let tap = UITapGestureRecognizer(target: self, action: #selector(self.buttonTapped(sender:)))
tap.delegate = self
view.addGestureRecognizer(tap)
//view.backgroundColor = .yellow
view.contentMode = .scaleAspectFit
thumbnail.frame = CGRect(x: 0, y: 0, width: self.maxSize, height: self.maxSize)
setupSubviews()
}
Может ли кто-нибудь указать мне правильное направление? Это мой первый вопрос, надеюсь, я правильно его задаю.