Клавиатура не отображалась при вызове функции makeFirstResponder()

Я создал текстовое поле в iOS и хочу, чтобы клавиатура выскакивала каждый раз, когда я его открываю. Я попробовал следующий код в файле .swift:

@IBOutlet weak var messageTextview: UITextView!

override func viewDidLoad() {
    super.viewDidLoad()
    self.messageTextview.becomeFirstResponder()
}

Однако клавиатура не показывалась. Может кто-нибудь, пожалуйста, помогите мне с этим?


person ZHEN BIAN    schedule 02.10.2018    source источник
comment
Поскольку viewDidLoad вызывается до того, как представление будет представлено на экране, вполне вероятно, что ОС просто проигнорировала ваш запрос, поскольку поле не может стать первым ответившим. Вместо этого, возможно, используйте viewDidAppear вместо этого   -  person MadProgrammer    schedule 03.10.2018
comment
Вы используете симулятор или устройство?   -  person Ashik    schedule 03.10.2018
comment
я использую симулятор   -  person ZHEN BIAN    schedule 03.10.2018
comment
@MadProgrammer Извините, я не совсем понимаю, что вы имеете в виду, вы имеете в виду, что я должен создать новую функцию с именем viewDidAppear и поместить в нее self.messageTextview.becomeFirstResponder()? Спасибо!   -  person ZHEN BIAN    schedule 03.10.2018
comment
@ZHENBIAN Да. Возможно, вам следует взглянуть на Понимание жизненного цикла контроллера представления и стремление понять жизненный цикл iOS UIViewController, чтобы получить лучшее понимать жизненный цикл UIViewController   -  person MadProgrammer    schedule 03.10.2018
comment
@MadProgrammer Спасибо! и я добавляю функцию переопределения viewWillAppear(_ анимированный: Bool) { super.viewWillAppear(анимированный) self.messageTextview.becomeFirstResponder() }   -  person ZHEN BIAN    schedule 03.10.2018


Ответы (1)


Если вы используете симулятор и клавиатура на нем не отображается, нажмите ⇧+⌘+K

person User18474728    schedule 03.10.2018
comment
Работает! Большое спасибо! - person ZHEN BIAN; 03.10.2018