Используя код ниже, чтобы показать InputQuery с двумя полями, и все в порядке в Windows и Android. Тот же код отлично работает с одним полем на ios, но не с двумя, выдающими вышеуказанное сообщение об ошибке. Любые идеи о том, что проблема будет. Я видел этот отчет https://quality.embarcadero.com/browse/RSP-27777 , который, кажется, показывает два поля ввода на ios, но с проблемой заголовка. Также проблема с отменой Async InputQuery не обрабатывает кнопку «Отмена», но ничего с этим сообщением. Заранее спасибо.
procedure TFrmMain.user_level_lbClick(Sender: TObject);
var
code_now, old_user_type: integer;
begin
code_now := 12;
TDialogServiceAsync.InputQuery('Please enter code to change user level password', ['Code','Level'],
['000','1'],
procedure(const AResult: TModalResult; const AValues: array of string)
begin
if Aresult = mrOk then
if Strtoint(Avalues[0]) = code_now
then begin
old_user_type := user_type;
user_type := strtoint( Avalues[1]);
showmessage('You have changed your level from ' + inttostr(old_user_type) +
' to ' +inttostr(user_type));
end
else showmessage('Wrong code'); // go to setup for debug
if Aresult = mrCancel then ;
end);
end;
В iOS InputQuery использует UIAlertView «под капотом», что означает, что он ограничен в доступных входных данных. Пожалуйста, обратитесь к:
https://developer.apple.com/documentation/uikit/uialertviewstyle?language=objc
Итог: вам нужно будет отправить запрос функции, чтобы он поддерживал то, что вы хотите (что означало бы, что будет использоваться что-то другое, кроме UIAlertView), или реализовать его другим способом.
Мой пост выше? Вы имеете в виду отчет о портале качества? Это сценарий имени пользователя/пароля, который является одним из вариантов для UIAlertView.
Да, это тот. Я подумал, что отображение двух полей редактирования может быть особым случаем.
Спасибо Дейв за разъяснения. Я заметил, что в вашем посте, указанном выше, вам удалось заставить InputQuery отображать более одного элемента. Я предполагаю, что вы использовали что-то другое, кроме UIAlertView. Также я принял ваш ответ.