déclenchement action à la frappe

Bonjour,
Je voudrais savoir comment :

  • détecter et déclencher un calcul au moment ou l'on saisit un chiffre dans un NSTextFieldCell
  • n'autoriser que les nombres dans un NSTextFieldCell

Pour le second cas, je n'arrive pas à convertir ma méthode en ObjectiveC en Swift.
NB: c'est pour Mac mais je suppose que c'est pareil pour iOS

Mots clés:

Réponses

  • CéroceCéroce Membre, Modérateur

    Ça fait bien longtemps que je n'ai pas travaillé avec NSCell! On n'a généralement plus besoin d'utiliser NSCell depuis macOS 10.7 puisque NSTableView peut utiliser des vues à la place.

    En utilisant NSTextField, ça simplifie:

    • utilise les actions ou les méthodes déléguées pour savoir quand le texte est modifié
    • NSControl (donc NSTextField) a une propriété Formatter qui permet de lui adjoindre un NSNumberFormatter. Dans le storyboard/xib, on peut même glisser le Formatter sur le text field.

    Je n'ai pas la réponse avec des cellules. NSTableView hérite de NSControl alors c'est peut-être au niveau de la table que tu peux le gérer.

    (Et non, sur iOS c'est très différent et bien moins casse-pieds).

  • devulderdevulder Membre
    mars 2021 modifié #3

    ` class myed1 : NSTextField
    {
    override func textDidChange(_ notification: Notification)
    {
    print("text",self.stringValue)
    }
    }

        let ed = myed1.init(frame: NSMakeRect(50,50,300,24))
    
        let ft = NumberFormatter()
    
        ed.formatter = ft`
    

    Comme l'a si bien dit @céroce, les NSCell ne servent que pour l'affichage
    C'est plutôt au niveau du NSTextField que tout se passe.

  • RocouRocou Membre
    mars 2021 modifié #4

    @Céroce a dit :

    • NSControl (donc NSTextField) a une propriété Formatter qui permet de lui adjoindre un NSNumberFormatter. Dans le storyboard/xib, on peut même glisser le Formatter sur le text field.

    C'est ce que je faisais en 2012 quand je programmais encore mais je ne trouve pas la façon de faire avec cette version de xCode. Je ne trouve pas le Formatter. :(

    EDIT: je m'aperçois que mon message n'est pas clair. En affichant la bibliothèque (du menu Show Library), j'ai bien un "Formatter" mais le glisser sur mon NSTextField ne génère aucun effet.

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