我需要显示系统输入对话框:标题、一些文本、输入字段、确定和取消按钮。
我是 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 对话框中允许空输入(默认情况下,“确定”按钮在空输入时禁用)。