2017-06-22 2 views
1

J'ai un UITextField, et quand le clavier est affiché, leur est sur le dessus d'une barre avec un bouton "done".IOS comment cacher la barre du haut (avec le bouton fait) sur le dessus du clavier?

enter image description here

Ce bouton fait est tout à fait inutile, d'abord il est dupliquer le bouton fait déjà présent dans le clavier et la seconde il n'est pas déclencher l'événement ShouldReturn rend difficiles à piéger toute action avec elle.

aussi je vois ce bouton sur mon iphone 5 + ios 9 mais je ne vois pas sur mon ipad pro + ios 10

Je suis en utilisant delphi, je ne sais pas s'il est question (autre application sur mon iphone 5 pas fait avec delphi ne pas avoir cette barre "done" donc peut-être oui)

+0

Vous devez supprimer la vue accessoire du clavier. ou essayez celui-ci yourTextField.inputAccessoryView = nil; –

+0

merci @RajJoshi. j'essaie de définir TextField.inputAccessoryView = nil; juste après la création de textField mais cela n'a pas aidé :( – loki

+0

duplication possible de [Comment cacher la barre d'assistant de formulaire en haut du clavier?] (https://stackoverflow.com/questions/39795354/how-to- cache-la-forme-assistant-barre-au-dessus-du-clavier) –

Répondre

1

OK, j'ai trouvé le problème. J'étais méfiant quand j'ai vu que la légende du bouton (fait) ne change pas sur l'iphone français. Apple ne fera pas une erreur si horrible, mais c'est typiquement ce que peut faire l'équipe d'emb :(Et oui, cette barre est faite par Delphi! Ne me demandez pas pourquoi ils font un tel horrible penser par défaut, mais ils l'ont fait ... il est ne montrait pas dans l'iPad parce que:

procedure TCocoaVirtualKeyboardService.ApplicationEventHandler(const Sender: TObject; const M: TMessage); 
begin 
    if (M is TApplicationEventMessage) and ((M as TApplicationEventMessage).Value.Event = TApplicationEvent.FinishedLaunching) then 
    begin 
    FToolbarEnabled := not IsPad; 
    FHideButtonVisible := FToolbarEnabled; 
    end; 
end; 

vraiment super Nawak :(

vous pouvez donc désactiver la barre d'outils en faisant:

if TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardToolbarService, aVirtualKeyboardToolbarService) then aVirtualKeyboardToolbarService.SetToolbarEnabled(False); 

faire complètement idiot de cette barre d'outils inutile et laid activé par défaut :(