Blackberry 10 SystemPrompt->inputField не меняет значение при вводе пользователем
Мне нужно отобразить системный диалог ввода: заголовок, текст, поле ввода, кнопки OK и Отмена.
Я новичок в разработке BB, поэтому я внимательно читаю документы и примеры: http://developer.blackberry.com/native/documentation/cascades/ui/dialogs_toasts/prompts.html и пишу тот же код (скажем, автор документа обманул немного в самой важной части - не охватывающей получение пользовательского ввода с некомпилируемым исходным кодом - "qDebug() <<" Prompt Accepted: "<< text;").
void MainPage::showPrompt() {
SystemPrompt *dialog = new SystemPrompt();
dialog->inputField()->setDefaultText("TEST");
QObject::connect(dialog, SIGNAL(finished(bb::system::SystemUiResult::Type)),
this, SLOT(promptHandler(bb::system::SystemUiResult::Type)));
dialog->show();
}
void MainPage::promptHandler(bb::system::SystemUiResult::Type value) {
if (value == SystemUiResult::ConfirmButtonSelection) {
SystemPrompt *dialog = (SystemPrompt *)QObject::sender();
qDebug("text is: '%s'", qPrintable(dialog->inputField()->defaultText()));
}
}
Независимо от пользовательского ввода на устройстве / симуляторе значение inputField()->defaultText() всегда имеет значение "TEST", как оно было инициализировано.
Как я могу получить пользовательский ввод здесь? dialog->exec() ничего не меняет.
PS. Вопрос уровня эксперта: а как разрешить пустой ввод в диалоге SystemPrompt (по умолчанию кнопка "ОК" отключается при пустом вводе).
1 ответ
Позор мне. Я не читал документацию внимательно.
-> inputFieldTextEntry () содержит пользовательский ввод.
PS. Впервые я вижу такую сложную логику обработки такой простой вещи, как ввод пользователя в редактировании текста...