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

如何从 Firemonkey/Delphi 中的条码扫描仪获取数据

Delphi XE6 Android拨号函数

Delphi xe7 FireMonkey / Mobile (Android, iOS)生成 QR Code完整实例