Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Исправление ошибки "Unsupported InputQuery Fields" при использовании двух полей ввода в Delphi 10.4 на iOS

Delphi , Программа и Интерфейс , Диалоги и Фреймы

Разработчики, работающие с платформой Embarcadero RAD Studio и языком Object Pascal, могут столкнуться с различными проблемами при разработке кросс-платформенных приложений. Одной из таких проблем является ошибка "Unsupported InputQuery Fields" при попытке использовать диалог ввода с двумя полями в приложениях для iOS.

Описание проблемы

Пользователи, использующие Delphi 10.4 для создания мобильных приложений, столкнулись с проблемой, когда использование InputQuery с двумя полями приводит к ошибке "Unsupported InputQuery Fields" на платформе iOS. В то время как такая же логика успешно работает на Windows и Android, на iOS функция работает корректно только с одним полем ввода.

Пример кода, который вызывает ошибку на iOS:

procedure TFrmMain.UserLevel_LbClick(Sender: TObject);
var
  CodeNow, OldUserType: Integer;
begin
  CodeNow := 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]) = CodeNow then
        begin
          OldUserType := UserType;
          UserType := StrToInt(AValues[1]);
          ShowMessage('You have changed your level from ' + IntToStr(OldUserType) + 
                      ' to ' + IntToStr(UserType));
        end
        else
          ShowMessage('Wrong code');
      // Обработка нажатия кнопки отмена
      if AResult = mrCancel then;
    end);
end;

Причины возникновения ошибки

На iOS InputQuery использует UIAlertView изнутри, что ограничивает возможности ввода. Это связано с тем, что UIAlertView предназначен для простых диалогов с ограниченным количеством полей ввода.

Подтвержденный ответ

Для решения проблемы на iOS, необходимо использовать другой подход, так как UIAlertView не поддерживает несколько полей ввода. В качестве альтернативы можно подать запрос на добавление новой функции, которая позволит использовать что-то другое вместо UIAlertView, или же реализовать ввод данных другим способом.

Альтернативный ответ

Исследование проблемы показало, что использование двух полей ввода с InputQuery на iOS может быть ограничено из-за особенностей платформы. В качестве примера успешного решения проблемы можно привести использование альтернативного подхода, который был применен в отчете на портале качества (Quality Portal), где удалось отобразить два поля для ввода, предположительно, с использованием другого подхода, отличного от UIAlertView.

Рекомендации

Рассмотрите возможность использования других компонентов или методов ввода данных, которые поддерживаются в кросс-платформенной разработке с помощью Delphi, например, TInputDialog или создание пользовательского диалога.

Заключение

Разработчикам, столкнувшимся с данной проблемой, рекомендуется обратить внимание на ограничения, связанные с использованием UIAlertView на iOS, и рассмотреть альтернативные способы реализации диалогов ввода данных. Это может потребовать дополнительной настройки кода и возможно, использования более сложных компонентов интерфейса пользователя.

Эта статья предназначена для специалистов, работающих с Delphi и Object Pascal, и призвана помочь в устранении конкретной ошибки, связанной с использованием InputQuery на iOS, а также предоставить информацию о возможных альтернативных решениях.

Создано по материалам из источника по ссылке.

Разработчики в Delphi 10.4 столкнулись с ошибкой при использовании `InputQuery` с двумя полями ввода в приложениях для iOS, что является следствием ограничений `UIAlertView`.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Диалоги и Фреймы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-02-10 18:44:28/0.0037410259246826/0