Собственный ввод текста с 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
учебный класс. Смотрите этот ответ для более подробной информации.