2013-02-25 55 views
1

是否有创建打开设备目标的本地键盘的输入文本? (从iOS和Android设备的底部屏幕)。带PlayN的原生输入文本

我试图

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

但它只能显示一个弹出了一个原生文本字段。

谢谢

回答

1

TriplePlay中有一个名为NativeTextField的实验性新API,可用于覆盖具有正确位置和尺寸的平台原生文本字段,以便它看起来是您的TriplePlay UI的一部分。当用户点击它以使其聚焦时,会显示OS键盘,并且文本输入与原生应用程序中的正常操作相同。

目前只有iOS的一个实现,但最终会有一个Android实现。

包含了三网合一,ios.jar在ios/pom.xml像这样:

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

,然后调用添加到您的Main.cs文件:

 IOSTPPlatform.register(platform); 

其中platformIOSPlatform.register返回IOSPlatform

随着所有这些接线,然后Field将自动使用iOS上的原生文本字段实现。

还有一点需要注意:原生文本字段只是在编辑文本时显示原生文本字段。文本编辑完成后,本地字段将被删除,标准的TriplePlay字段将用于显示文本的当前值。

如果由于渲染稍有不同,导致文本发生奇怪的偏移,您可以使用Field.FULLTIME_NATIVE_FIELD样式保留原文文本字段。

+0

非常感谢你,我不能部署到iOS(我需要购买相对昂贵的lisence),当我这样做时,我会试一试。 – 2013-03-06 23:17:33

+0

您至少可以在iOS模拟器中测试它,它将演示适当的原生文本字段行为。 – samskivert 2013-03-06 23:45:42

+0

好点..再次感谢迈克尔 – 2013-03-06 23:57:23

2

我affraid没有办法做到这一点使用Field类。有关更多详细信息,请参见此answer

+0

感谢您的回放..我看到帖子,并认为它已过时(这是一岁)。是否有另一种方式来做到这一点(除了使用Field类)? – 2013-02-25 22:24:15