Собственный ввод текста с PlayN

Есть ли в любом случае, чтобы создать ввод текста, который открывает родную клавиатуру устройства цели? (из нижнего экрана устройств iOS и Android).

Я старался

tripleplay.ui.Field field = new Field();

Но он показывает только всплывающее окно с собственным текстовым полем.

Спасибо

2 ответа

Решение

В TriplePlay есть новый экспериментальный API NativeTextField это можно использовать для наложения платформенного текстового поля с правильной позицией и размерами, чтобы оно казалось частью вашего интерфейса TriplePlay. Когда пользователь нажимает на него, чтобы выделить его, отображается клавиатура ОС, и ввод текста работает так же, как обычно в родном приложении.

В настоящее время есть только реализация для iOS, но реализация Android в конечном итоге будет дополнена.

Включите tripleplay-ios.jar в свой ios/pom.xml вот так:

<dependency>
  <groupId>com.threerings</groupId>
  <artifactId>tripleplay-ios</artifactId>
  <version>${playn.version}</version>
</dependency>

а затем добавить вызов к вашему Main.cs файл:

        IOSTPPlatform.register(platform);

где platform это IOSPlatform вернулся IOSPlatform.register,

Со всем этим, затем Field будет автоматически использовать собственную реализацию текстового поля на iOS.

Еще одна вещь, на которую следует обратить внимание: поле родного текста просто показывает поле собственного текста во время редактирования текста. Когда редактирование текста завершено, собственное поле удаляется, и стандартное поле TriplePlay используется для отображения текущего значения текста.

Если это приводит к странному смещению текста, потому что рендеринг немного отличается, вы можете оставить поле родного текста на месте все время с помощью Field.FULLTIME_NATIVE_FIELD стиль.

Я боюсь, что нет никакого способа сделать это, используя Field учебный класс. Смотрите этот ответ для более подробной информации.

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