[Résolu] à‰liminer le clavier définitivement

busterTheobusterTheo Membre
juin 2015 modifié dans API UIKit #1

Bonjour à  tous,


j'ai un peu honte car je viens pour un problème à  deux balles.


 


En gros, je dois cliquer dans un champs (textField) et afficher un popUp qui propose des choix, et qui, une fois le choix sélectionné, se dépose dans le champ.


 


Tout ça fonctionne bien, avec des :



UITapGestureRecognizer

Mais je ne parviens pas à  empêcher que le clavier s'affiche.


J'ai tout essayé, tout regardé et cherché sur le web, je ne vois que des trucs après le press sur la touche return du clavier, ou en dehors du clavier. Tout ça, j'ai bien compris (enfin, le mot est fort),. Mais, moi, je ne veux pas de clavier, et surtout que je puisse afficher mon popup, et donc avoir le droit d'éditer, sans avoir le clavier pour éditer.


 


Merci d'avance.


Réponses

  • AliGatorAliGator Membre, Modérateur
    T'as essayé avec un inputText = UIView(frame:CGRectZero)?
  • textFieldShouldBeginEditing Devrait permettre de désactiver le clavier si tu retournes NO si je me souviens bien.


     


    https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITextFieldDelegate_Protocol/#//apple_ref/occ/intfm/UITextFieldDelegate/textFieldShouldBeginEditing:



  •  


     


    T'as essayé avec un inputText = UIView(frame:CGRectZero)?

    Ben non, et j'ai cherché, je vois pas trop c'est quoi ce truc ?


     


    J'ai un champ avec une action dessus



    champRegard = UITextField(frame: CGRectMake(60, 315, 155, 34))
    champRegard.userInteractionEnabled = true

    champRegard.addTarget(self, action: "tapRegardField", forControlEvents: UIControlEvents.EditingDidBegin)


     


    Et la fonction appelée



    func tapRegardField() {
    popUpFieldRegard = PopUpField(frame: CGRectMake(120, 283, 200, 110))
    popUpFieldRegard.backgroundColor = UIColor.clearColor()
    viewFille2Etapes.addSubview(popUpFieldRegard)

    configLabelsPopUpRegard()
    }

    qui fait monter un popup avec un choix de 3 textes, et ce choix s'affiche dans le champ


     


    Donc je je met userInteractionEnabled à  false, effectivement, le clavier ne monte plus (cool), mais mon action n'est plus prise en compte.


     


    Avec ça,


     



     


     


    textFieldShouldBeginEditing

     


    c'est la même chose : plus de clavier (cool) mais plus de popup

  • Avec cela, ça fonctionne, mais y'a un petit bug


     


    je garde



    champRegard.userInteractionEnabled = true

    et ça



    func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
    return false
    }

    Par contre je change le UIControlEvents de l'action



    champRegard.addTarget(self, action: "tapRegardField", forControlEvents: UIControlEvents.TouchDown)

    Mais il faut que je click au moins trois fois pour que mon action soit prise en compte


  • CéroceCéroce Membre, Modérateur
    Ali s'est trompé sur le nom de la propriété. Le code correct:

    textField.inputView = UIView(frame:CGRectZero)
  • Alors, ça marche du feu de dieu avec ça. Et sans aucun delegate



    champRegard = UITextField(frame: CGRectMake(60, 315, 155, 34))
    champRegard.userInteractionEnabled = true
    champRegard.addTarget(self, action: "tapRegardField", forControlEvents: UIControlEvents.EditingDidBegin)

    champRegard.inputView = UIView(frame: CGRectZero)

    Merci à  tous. Génial


     


     


    Je met résolu


Connectez-vous ou Inscrivez-vous pour répondre.