![]() |
|
Klavyeyi Gizleme - Baskı Önizleme +- Delphi Can (https://www.delphican.com) +-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3) +--- Forum: Mobil Platform - FireMonkey (FMX) (https://www.delphican.com/forumdisplay.php?fid=7) +--- Konu Başlığı: Klavyeyi Gizleme (/showthread.php?tid=3153) |
Klavyeyi Gizleme - pro_imaj - 14-01-2019 Merhaba, FMX Mobil tarafta, klavyeyi gizlemek için çok fazlaca örnek var fakat çoğu doğru çalışmıyor. (ios) Delphi tarafında aşağıdaki kod ile bu işlem basit olarak yapılabildiği yazıyor, fakat bende çalışmıyor. Konuyla ilgili bilgisi olan var mı acaba. VKAutoShowMode := TVKAutoShowMode.Never; Teşekkürler. Cvp: Klavyeyi Gizleme - mcuyan - 15-01-2019 (14-01-2019, Saat: 16:16)pro_imaj Adlı Kullanıcıdan Alıntı: Merhaba, Aşağıdaki Kodu Android de kullanıyorum sorunsuz çalışıyor.. IOS da denemedim. (Memo ya dikkat) procedure Turun.Button1Click(Sender: TObject);
{$IFDEF ANDROID}
var
FService: IFMXVirtualKeyboardService;
{$ENDIF}
begin
{$IFDEF ANDROID}
TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(FService));
if (FService <> nil) and (FMX.Types.TVirtualKeyboardState.Visible in FService.VirtualKeyBoardState) then
begin
FService.HideVirtualKeyboard;
Exit;
end
else
FService.ShowVirtualKeyboard(Memo1);
{$ENDIF}
end;
Cvp: Klavyeyi Gizleme - pro_imaj - 15-01-2019 (15-01-2019, Saat: 02:05)mcuyan Adlı Kullanıcıdan Alıntı:(14-01-2019, Saat: 16:16)pro_imaj Adlı Kullanıcıdan Alıntı: Merhaba, İlgili şartları sağlamadığı için if bloğuna giremiyor iphone tarafına debug yapamadığım için gözlemleyemedim, aşağıdaki kodu klavye açıkken çalıştırdığımda ise kapama işlemiyle access violation hatasını alıyorum, try except ile geçilebilir belki ama yanlış bir yol oluyor. FService.HideVirtualKeyboard; Klavyeyi Gizleme - SimaWB - 15-01-2019 Bilmiyordum gördünüz mü ama burada IOS için bir çözüm sunulmuş. Belki işinize yarayabilir. Cvp: Klavyeyi Gizleme - Fesih ARSLAN - 15-01-2019 (15-01-2019, Saat: 09:33)pro_imaj Adlı Kullanıcıdan Alıntı:(15-01-2019, Saat: 02:05)mcuyan Adlı Kullanıcıdan Alıntı: Aşağıdaki Kodu Android de kullanıyorum sorunsuz çalışıyor.. IOS da denemedim. Merhaba, FMX.VirtualKeyboard.iOS kütüphanesinde aşağıdaki metodlar yer alıyor.
type
IKeyboardEvents = interface(NSObject)
['{72D3A7FD-DDE3-473D-9750-46C072E7B3B7}']
{ Keyboard notifications }
procedure KeyboardWillShow(notification: Pointer); cdecl;
procedure KeyboardWillHide(notification: Pointer); cdecl;
procedure KeyboardDidHide(notification: Pointer); cdecl;
procedure KeyboardWillChangeFrame(notification: Pointer); cdecl;
procedure KeyboardDidChangeFrame(notification: Pointer); cdecl;
{ Actions }
procedure HideVirtualKeyboard; cdecl;
procedure CustomButtonAction(sender: Pointer); cdecl;
end;
TKeyboardEventHandler = class(TOCLocal)
strict private type
TKeyboardState = (Shown, Hidden);
private
FKeepFocus: Boolean;
{ Keyborad Notifications }
procedure SendNotificationAboutKeyboardEvent(const AVKRect: TRect; AKeyboardState :TKeyboardState);
function GetKeyboardRect(Notification: Pointer): TRect;
function GetKeyboardFrame(Notification: Pointer): NSRect;
function InvertFrame(const AFrame: NSRect): NSRect;
protected
{ TOCLocal }
function GetObjectiveCClass: PTypeInfo; override;
public
{ IKeyboardEvents }
procedure KeyboardWillShow(notification: Pointer); cdecl;
procedure KeyboardWillHide(notification: Pointer); cdecl;
procedure KeyboardDidHide(notification: Pointer); cdecl;
procedure KeyboardWillChangeFrame(notification: Pointer); cdecl;
procedure KeyboardDidChangeFrame(notification: Pointer); cdecl;
procedure HideVirtualKeyboard; cdecl;
procedure CustomButtonAction(sender: Pointer); cdecl;
end;
Cvp: Klavyeyi Gizleme - pro_imaj - 15-01-2019 (15-01-2019, Saat: 09:44)SimaWB Adlı Kullanıcıdan Alıntı: Bilmiyordum gördünüz mü ama burada IOS için bir çözüm sunulmuş. Belki işinize yarayabilir. Bu çözümü gördüm hocam, 4 yöntemden 3'nü uyguladığımda çalışmıyor İlk mesajımdaki kodda buradan ilerliyorum. Diğerini neden uygulamadığıma gelince daha kolay bir yolu olmalı diye araştıryorum. embarcadero support kısmında Delphi sürümleriyle ilgili farklılıktan bahsetmişler eski sürümlerde sorunsuz olduğunu bahsetmişler (o linki bulamadım şimdi.) *Mantık olarak bir butona setfocus olduğunda kapanmalı diye düşünüyor ama onda da işe yaramıyor. |