Эта ошибка обычно возникает при установке нового модуля (пока открыт упаковщик). Во-первых, вы можете попытаться закрыть ваш упаковщик и запустить реакцию-родной run-ios. Если этот подход не помогает, вы можете попробовать удалить каталог модулей узла и снова установить npm. Но я верю, что первый подход сработает.
Клавиатурный фокус связан с виджетом порядок вкладки, и порядок вкладки по умолчанию основан на порядке, в котором виджеты создаются . Поэтому создание большего количества виджетов изменяет клавиатурный фокус. Именно поэтому необходимо сделать QWidget::setFocus
вызов в последний раз.
я рассмотрел бы использование подкласса QWidget
для Вашего главного окна, которое переопределяет showEvent
виртуальная функция и затем устанавливает клавиатурный фокус на lineEdit
. Это будет иметь эффект всегда предоставления эти lineEdit
фокус, когда окно покажут.
В QT setFocus () слот, можно попробовать другой перегруженный метод, который берет QT:: параметр FocusReason как строка, показанная ниже:
line->setFocus(Qt::OtherFocusReason);
можно считать о причине фокуса опции в следующей ссылке:
Другой прием, который мог бы работать, при помощи singleshot
таймер:
QTimer::singleShot(0, line, SLOT(setFocus()));
Эффективно, это вызывает setFocus()
слот QLineEdit
экземпляр прямо после того, как система событий "свободна" сделать так, т.е. когда-то после того, как виджет полностью создается.