Récupérer le contenu d'un NSTextField

remoozremooz Membre
12:02 modifié dans API AppKit #1
Tout est dans le titre.

Via Interface Builder, je dispose mon NSTextField sur ma ViewController.
Je ne vois pas du tout comment récupérer le contenu d'un NSTextField.

Pour les composants de type NSButton, il n'y a pas de problème, je suis capable de les gérer. Je créé une action et un outlet qui sont ensuite reliés (TouchUp Inside) à  ma ViewController. Je procède de la même manière pour le NSTextField mais je coince.

Merci par avance pour votre aide.

Réponses

  • schlumschlum Membre
    12:02 modifié #2
    - (NSString *)stringValue
  • remoozremooz Membre
    12:02 modifié #3
    dans 1222629417:

    - (NSString *)stringValue

    C'est une méthode de la classe MyViewController ?
    Le contenu sera récupéré automatiquement ?
  • schlumschlum Membre
    12:02 modifié #4
    Je ne vois pas ce que t'appelles la viewController...
    Si c'est un truc de bindings, je ne connais pas.

    "stringValue" c'est la méthode d'instance de NSTextField pour récupérer son contenu...
  • AliGatorAliGator Membre, Modérateur
    12:02 modifié #5
    Plus précisément, [tt]-(NSString*)stringValue[/tt] est une méthode d'instance de NSControl, classe dont NSTextField dérive (puisque NSTextField dérive de NSControl, il hérite aussi de toutes ses méthodes)
  • remoozremooz Membre
    12:02 modifié #6
    dans 1222630854:

    Je ne vois pas ce que t'appelles la viewController...
    Si c'est un truc de bindings, je ne connais pas.

    ViewController c'est un composant de ton IHM sur lequel tu drag and drop des boutons, des labels,...
  • Philippe49Philippe49 Membre
    septembre 2008 modifié #7
    dans 1222638753:

    ViewController c'est un composant de ton IHM sur lequel tu drag and drop des boutons, des labels,...

    Tu dois programmer sous iPhone , non ? c'est-à -dire avec des UIViewController, auquel cas ton text field serait un UITextField au fonctionnement un peu différent du NSTextField.
    Parce que avec Cocoa, NSViewController peut très bien être utilisé comme contrôleur d'une vue, mais on ne peut rien drag-dropper dessus.
    Un NSViewController possède un IBOutlet appelé view, que l'on connecte à  une une custom view ajoutée depuis la librairie, par exemle. Ensuite, on ajoute ce que l'on veut dans cette vue.

  • remoozremooz Membre
    12:02 modifié #8
    oui pardon, j'ai oublié de la préciser, je programme sous iphone. C'est bien un UIViewController.
  • Philippe49Philippe49 Membre
    12:02 modifié #9
    Tu as regardé comment est fabriqué l'exemple Hello World ? Il suffit de s'y conformer
  • remoozremooz Membre
    12:02 modifié #10
    Oui justement je me suis plongé dans le code.
    Je passe par Interface Builder pour le design de mon IHM puis j'ai ajouté les parties de code de l'exemple "Hello World" mais rien n'y fait, ça ne fonctionne pas.
    Je devrais peut-être tout faire à  la main sans passer par Interface Builder.
  • Philippe49Philippe49 Membre
    12:02 modifié #11
    Il faut faire de ton viewcontroller le delegate, et implémenter dans ce dernier la methode du delegate voulue comme textFieldShouldReturn . (La méthode textFieldDidEndEditing:  ne convient pas ici, car elle est envoyée après que le text field résilie son statut de First Responder )
  • Eddy58Eddy58 Membre
    12:02 modifié #12
    Pour UITextField, il faut utiliser :

    NSString *texte=[monUITextField text];

    Avec l'outlet du UITextField "monUITextField" correctement implémenté.
  • remoozremooz Membre
    12:02 modifié #13
    Ca y est j'ai enfin réussi.
    Je me suis basé sur le projet "Hello World" et ça fonctionne nickel :).
    Merci pour votre aide.
  • AliGatorAliGator Membre, Modérateur
    12:02 modifié #14
    Mais pourquoi diable Apple a-t-il décidé de faire tant de changements que ça entre ses classes NSxx et UIxx ?
    Pourquoi ne pas avoir gardé "stringValue" au lieu de "text" ? pfff...
  • Eddy58Eddy58 Membre
    12:02 modifié #15
    Il y a encore plus gênant, ici stringValue est remplacé par text, mais les méthodes intValue, doubleValue, etc... n'ont pas leur remplaçant iPhoneOS, et il faut faire soi-même la cuisine nécessaire pour les remplacer. La classe UIControl a été considérablement allégée par rapport à  NSControl.
Connectez-vous ou Inscrivez-vous pour répondre.