AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung iOS Done Button in VirtualKeyboard unter iOS keine Funktion
Thema durchsuchen
Ansicht
Themen-Optionen

Done Button in VirtualKeyboard unter iOS keine Funktion

Ein Thema von OlliWW · begonnen am 15. Jan 2021 · letzter Beitrag vom 22. Jan 2021
Antwort Antwort
OlliWW

Registriert seit: 31. Aug 2011
159 Beiträge
 
#1

Done Button in VirtualKeyboard unter iOS keine Funktion

  Alt 15. Jan 2021, 21:42
Hallo,

Ich habe auf meiner FMX / iOS Form ein TListView liegen.
Dieses habe ich auf ControlType "Platform" stehen - damit ist die Performance wesentlich besser und auch der LookandFeel ist näher an iOS nativ.
Dann habe ich SearchVisible ebenfalls auf True gesetzt, damit ich meine ListView durchsuchen kann.
Es klappt auch ganz wunderbar, jedoch wenn ich in die SearchBox klickt und ein Suchwort eingebe und das virtual Keyboard mit dem "Fertig" Button (oben über der Tastatur) beenden möchte hat dieser Button keine Funktion.

Nehme ich das "Styled" Control, funktioniert alles wie erwartet.

Gibt es hier noch einen Trick? Kann ich das Klick-Event auf den Fertig-Button abfangen und ggf. selbst einen Hide Befehl für das Keyboard senden?
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#2

AW: Done Button in VirtualKeyboard unter iOS keine Funktion

  Alt 15. Jan 2021, 22:49
Ich glaube mich zu erinnern, dass das eine Einschränkung der nativen Controls ist. Kann aber auch falsch liegen. Schon Mal EMBTs DocWiki danach durchsucht?
  Mit Zitat antworten Zitat
OlliWW

Registriert seit: 31. Aug 2011
159 Beiträge
 
#3

AW: Done Button in VirtualKeyboard unter iOS keine Funktion

  Alt 16. Jan 2021, 10:01
Hallo,

Ja ich habe das Wiki schon durchsucht aber noch nicht wirklich viel gefunden. Ich würde mir auch selbst einen Event Handler dafür schreiben, aber habe dafür auch keinen Einsatz gefunden der funktioniert.

Das ist nun die erste iOS App die ich mit Delphi schreibe, leider bin ich wegen solchen Sachen direkt schon sehr frustriert und enttäuscht. Der Ansatz mit Firemonkey und iOS ist ja super, aber andauerend stoße ich an solche halb-fertigen Stellen in FMX / iOS.
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.930 Beiträge
 
Delphi 12 Athens
 
#4

AW: Done Button in VirtualKeyboard unter iOS keine Funktion

  Alt 19. Jan 2021, 12:56
Ich glaube Done/Fertig/Suchen liefert den virtual key für enter oder eben den char #13.
Ich frage das immer Keydown ab.
Heißt das, wenn ich das Control auf "Styled" stelle muss ich das ereignis nicht abfragen?
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
OlliWW

Registriert seit: 31. Aug 2011
159 Beiträge
 
#5

AW: Done Button in VirtualKeyboard unter iOS keine Funktion

  Alt 19. Jan 2021, 13:54
Heißt das, wenn ich das Control auf "Styled" stelle muss ich das ereignis nicht abfragen?
Ja das Verhalten zwischen "styled" und "platform" ist im ListView in der Searchbox unterschiedlich:

Styled:
- Searchbox Visible
- Mit dem Finger in die Searchbox tippen (nichts eingeben)
- "Fertig" antippen
=> Tastatur verschwindet

Platform:
- Searchbox Visible
- Mit dem Finger in die Searchbox tippen (nichts eingeben)
- "Fertig" antippen
=> Tastatur verschwindet nicht

Mit der Einstellung "Platform" ist der einzige weg das Keyboard verschwinden zu lassen: Etwas in die Searchbox eintippen und auf Enter (Suchen Icon) unten in der Tastatur drücken.

Das mit dem Char13 ist eine interessante Sache. Da "Enter" nicht aktiv ist, solange nichts in die Searchbox eingegeben ist, könnte es auch damit zusammen hängen. Wenn Fertig nur auf "Enter" verweist und Enter inaktiv ist, könnte es sein, dass es dehalb nicht funktioniert, dem werde ich mal nachgehen.

So oder so ist es ein Fehler. Entweder darf der Button gar nicht da sein, oder er soll funktionieren. Aber ein "Fertig" Button ohne Funktion erscheint mir nach einem Fehler.

Ich habe das Ganze mit einem Beispiel an Embarcadero gemeldet...wird dann sicherlich in Delphi 17.3 gefixt werden

https://quality.embarcadero.com/brow...2182?filter=-2

Kannst du mir mal den Code geben mit dem du die Tastatur verschwinden lässt? Ich konnte das Event "Fertig" auch abfangen, aber ich konnte die Tastatur egal wie nicht verschwinden lassen. Entweder passierte nichts oder Zugriffsverletzungen.
Abgefangen habe ich den "fertig" klick mit:
https://stackoverflow.com/questions/...of-done-button
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#6

AW: Done Button in VirtualKeyboard unter iOS keine Funktion

  Alt 19. Jan 2021, 14:01
Ich glaube Done/Fertig/Suchen liefert den virtual key für enter oder eben den char #13.
Jupp, im Grunde ist das alles der selbe Enter-Knopf, aber je nach Kontext/Land mit einem anderen Aufdruck.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
OlliWW

Registriert seit: 31. Aug 2011
159 Beiträge
 
#7

AW: Done Button in VirtualKeyboard unter iOS keine Funktion

  Alt 19. Jan 2021, 14:04
Ich glaube Done/Fertig/Suchen liefert den virtual key für enter oder eben den char #13.
Jupp, im Grunde ist das alles der selbe Enter-Knopf, aber je nach Kontext/Land mit einem anderen Aufdruck.
Auch der "Fertig (Done)" Butten in der Toolleiste über der Tastatur?
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.930 Beiträge
 
Delphi 12 Athens
 
#8

AW: Done Button in VirtualKeyboard unter iOS keine Funktion

  Alt 19. Jan 2021, 15:42
Ich glaube Done/Fertig/Suchen liefert den virtual key für enter oder eben den char #13.
Jupp, im Grunde ist das alles der selbe Enter-Knopf, aber je nach Kontext/Land mit einem anderen Aufdruck.
Auch der "Fertig (Done)" Butten in der Toolleiste über der Tastatur?
Der "Button" oder eben "Key" der nur sichtbar ist wenn das Virtual Keybord sichtbar ist ... bey swiftkey glaube ich unten rechts bei anderen oben rechts aber noch als teil des Virtual keyboards.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#9

AW: Done Button in VirtualKeyboard unter iOS keine Funktion

  Alt 19. Jan 2021, 19:20
Es kommt drauf an, bei Android gibt es auch manchmal so einen "schließen" Knopf (oder ganz unten auf Zurück),
aber der blendet doch einfach nur die Tastatur aus und sendet keine "Taste". Wofür es doch irgendwo die Events gibt, wenn die Tastatur ein-/ausgeblendet wird.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
OlliWW

Registriert seit: 31. Aug 2011
159 Beiträge
 
#10

AW: Done Button in VirtualKeyboard unter iOS keine Funktion

  Alt 22. Jan 2021, 10:40
Ich habe mir nun einen Workarround gebastelt:
Der "Fertig" Button löst bei mir jedenfalls kein VK_Return aus. Ich habe mir den Eventhandler aus diesem Beitrag genommen:
https://stackoverflow.com/questions/...of-done-button

Das Event registriere ich im Create von TListView (=> FMX.ListView.iOS.pas). Dort habe ich eine Methode geschrieben die bei dem Event FSearchbar.resignFirstResponder aufruft (aber achtung: Muss aus dem UI Thread passieren).

Damit funktioniert es für mich soweit erstmal.

Was mich allerdings sehr stört ist, dass ich dafür die Sourcen von VirtualKeyboard und ListView in meinem Projekt mit übernehmen musste.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz