gpt4 book ai didi

delphi - 使用 IFMXVirtualKeyboardService 隐藏虚拟键盘后丢失

转载 作者:行者123 更新时间:2023-12-03 15:52:04 25 4
gpt4 key购买 nike

我的表单上有一个 TEdit 和一个 TTMSFMXWebGMaps。在我编辑的 OnKeyUp() 事件中,我有以下代码来隐藏 iPhone 4 的虚拟键盘:

if TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService) then
(TPlatformServices.Current.GetPlatformService(IFMXVirtualKeyboardService) as IFMXVirtualKeyboardService).HideVirtualKeyboard;

问题是,如果不将焦点更改为另一个控件,我无法再次显示键盘。我在编辑的 OnTap() 中尝试了此操作,但它没有使键盘恢复:

  if TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService) then
(TPlatformServices.Current.GetPlatformService(IFMXVirtualKeyboardService) as IFMXVirtualKeyboardService).ShowVirtualKeyboard(edSearch);

由于我的表单仅包含一个 TEdit,键盘将永远丢失,除非用户导航到另一个表单并返回。有什么想法吗?

最佳答案

有一个非常简单的方法来隐藏虚拟键盘。

uses
{$IFDEF IOS}
FMX.Forms
{$ENDIF}
{$IFDEF Android}
Androidapi.JNI.Embarcadero,
FMX.Platform.Android,
FMX.Helpers.Android
{$ENDIF};

procedure HideVirtualKeyboard;
{$IFDEF IOS}
begin
try
Screen.ActiveForm.Focused := nil;
except
end;
end;
{$ENDIF}
{$IFDEF Android}
var
TextView: JFMXTextEditorProxy;
begin
try
begin
TextView := MainActivity.getTextEditorProxy;
CallInUIThread(
procedure
begin
TextView.setFocusable(false);
TextView.setFocusableInTouchMode(false);
TextView.showSoftInput(false);
TextView.clearFocus;
TextView.setFocusable(true);
TextView.setFocusableInTouchMode(true);
end);
end
except
end;
end;
{$ENDIF}

关于delphi - 使用 IFMXVirtualKeyboardService 隐藏虚拟键盘后丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28606255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com