Search code examples
iosdelphidialoginputbox

Delphi 10.4 InputQuery on iOS results in Error "Unsupported InputQuery Fields"


Using the code below to show an InputQuery with two fields and all is fine in windows and Android. The same code works fine with one field on ios but not with two producing the above error message. Any ideas of what the issue would be. I have seen this https://quality.embarcadero.com/browse/RSP-27777 report that seems to show the two input field on ios but with a caption issue. Also the issue with cancel Async InputQuery doesn't handle Cancel button but nothing with this message. Thank you in advance.

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;

Solution

  • On iOS, InputQuery uses a UIAlertView "under the hood", which means it is limited in the inputs it has available. Please refer to:

    https://developer.apple.com/documentation/uikit/uialertviewstyle?language=objc

    Bottom line: You would need to submit a feature request for it to support what you want (which would mean that something other than UIAlertView would be used), or implement it another way