Delphi XE6 Firemonkey Mobile - 如何禁用虚拟键盘?
Posted
技术标签:
【中文标题】Delphi XE6 Firemonkey Mobile - 如何禁用虚拟键盘?【英文标题】:Delphi XE6 Firemonkey Mobile - How to disable Virtual Keyboard? 【发布时间】:2015-01-06 14:21:42 【问题描述】:当我将编辑字段聚焦在 android 上时,总是会弹出虚拟键盘。 我喜欢禁用它,或者更好地通过单击按钮来启用/禁用它。
目前我用一个计时器“解决”了这个问题,该计时器总是在之后关闭虚拟键盘 出现。这是我的代码:
uses FMX.VirtualKeyboard;
procedure TForm1.Timer1Timer(Sender: TObject);
var Keyboard: IFMXVirtualKeyboardService;
begin
if TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService,Keyboard) then
begin
if TVirtualKeyBoardState.Visible in Keyboard.GetVirtualKeyBoardState then
begin
Keyboard.HideVirtualKeyboard;
end
end;
end;
希望你能帮帮我。
非常感谢!
【问题讨论】:
您阅读文档了吗? docwiki.embarcadero.com/Libraries/en/FMX.Types.VKAutoShowMode 顺便说一句,您不需要投射IInterface( Keyboard )
,直接使用它即可TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, Keyboard)
【参考方案1】:
您可以禁用虚拟键盘的自动显示
VKAutoShowMode := TVKAutoShowMode.Never;
在 FMX.Types 中定义。
把它放在你的 DPR 中,然后它就不会再自动弹出了。
【讨论】:
与 Delphi 10.2 Tokyo 和 Android 6 一起使用它不起作用。我已将此代码放在 .DPROJ 文件中,就在Application.Initialize
之后。这是正确的地方吗?
更正:我以为是 .dproj 文件,但它似乎是 .dpr 文件。但它不起作用。 @Jim McKeeth 有什么建议吗?【参考方案2】:
您还可以放置:
VKAutoShowMode := TVKAutoShowMode.Never;
在主窗体的 FormCreate 事件中。
【讨论】:
以上是关于Delphi XE6 Firemonkey Mobile - 如何禁用虚拟键盘?的主要内容,如果未能解决你的问题,请参考以下文章
Embarcadero RAD Studio XE6 安装没有 FireMonkey Mobile Application 解决方法
如何在Delphi FireMonkey中发送iOS的推送通知
在 Delphi 2007 DLL 和 XE6 EXE 之间传递 PChar