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. Впервые я вижу такую ​​сложную логику обработки такой простой вещи, как ввод пользователя в редактировании текста...

Другие вопросы по тегам