在原生、Phonegap/Cordova构建的iOS应用中更改键盘外观

9

我想要在我的Phonegap/Cordova构建的本地iOS应用程序中更改所有键盘的背景颜色,如下所示:

enter image description here

当然,我已经仔细搜索了这个问题并找到了两个相关的答案。回答者这里说可以在PhoneGap项目的AppDelegate.m文件中添加Objective-C代码,如页面所示。我已经找到了AppDelegate.m文件,但似乎无法弄清楚如何将键盘外观设置为所有文本字段上的UIKeyboardAppearanceAlert。答案提供者提供了代码示例:

 mytextfield.keyboardAppearance = UIKeyboardAppearanceAlert;

我正在基于cordova编写一个应用程序,我无法区分任何文本字段ID以连接到上面的示例。在Xcode / Cordova中是否有一个文件列出了所有文本字段ID,或者更好的是:

是否有一种方法可以通过UIKeyboardAppearanceAlert或类似方法设置键盘外观为暗色,适用于所有文本字段并与Cordova兼容?

谢谢

3个回答

5

在广泛分享这个问题于各种社交媒体、进行更加广泛和深入的研究、询问朋友和熟人等之后,我只能得出这样一个结论:使用 PhoneGap 和 Cordova 无法达成此目标。但我希望有人能够证明我是错的。然而,暂时来说,这就是我的结论。


1
据我所知,如果不进行重大修改,使用Cordova无法实现这一点,而这可能会被苹果公司所不赞成。但我也不能确定。

1

没有办法将其应用于应用程序中的所有文本字段,而不通过代码并手动设置每个UITextFields键盘样式为黑色。

编辑2:不幸的是,看起来没有任何可能的方法可以在不使用Phonegap框架的情况下实现这一点。如上所述,似乎没有任何HTML元素可用于将输入标记(来自Apple的Mobile Safari或Phonegap)设置为警报。因此(如果可能),请搜索UITextField *。

编辑:

似乎没有任何HTML元素可用于将输入标记(来自Apple的Mobile Safari或Phonegap)设置为警报。因此(如果可能)请搜索UITextField *。

Like in this image...

就在应该看起来像这样的那一行正下方:

UITextField *field = [[UITextField alloc] init...];

请添加此行代码。
field.keyboardAppearance = UIKeyboardAppearanceAlert; // just like in your example...

如果您对所有的UITextField结果都这样做,那么您的键盘将会看起来像您描述中的图片。

好的,那么如何定位 Cordova/PhoneGap 设置的文本字段呢?告诉我这个问题的答案,我很乐意以你的名义签署赏金。 - Jonathan
@Jonathan,看到我的编辑了吗?如果需要更多帮助,请告诉我 :) - ManOx
谢谢,不幸的是,对于UITextField *和简单的UITextField的搜索没有产生任何结果:(我想像我这样的人需要更好地理解Cordova的基本架构才能做到这一点。但我会继续努力的。还有其他建议吗?像上面建议的Hack可能吗?谢谢。 - Jonathan
在我运行的版本中,似乎可以更改代码,所以至少这个版本可能是开源的,但我不知道从哪里开始,该添加或更改什么以及在哪里进行。无论如何,我想那就是了,这似乎是不可能的。 - Jonathan
@Jonathan 是的,对此我感到抱歉。你可能可以通过插件来实现它,但老实说,我已经有一段时间没有使用 PhoneGap 了,而当时他们甚至还没有插件,所以我无法提供太多帮助。 - ManOx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接