Bizarre... dérivation de NSTextfield inefficace

ChachaChacha Membre
22:41 modifié dans API AppKit #1
Bonjour,

Il m'arrive un truc bizarre. Dans une fenêtre, j'ai un NSTextField, connecté par IBOutlet à  ma classe MyDocument. Pas de souci, elle marche bien. Or, je voudrais ajouter des comportements à  mon NSTextField, pour le drag'n drop.
J'ai donc fait comme d'habitude :
  -création d'une classe MyTextField dérivant de NSTextField dans XCode
  -spécification de MyTextField comme "Custom class" de l'instance du NSTextField dans Interface Builder

De ce fait, on s'attend normalement à  ce que les méthode surchargées de MyTextField soient appelées...

Et bien dans mon cas, non. J'ai par exemple surchargé initWithFrame:, mais rien, rien, elle n'est jamais appelée, comme si aucun objet MyTextField n'était jamais créé.

Bon, j'ai vérifié mon code 30 fois, je ne pense pas qu'une bête faute de frappe soit en cause. J'ai cherché sur Google, et il semble qu'un type a déjà  eu ce problème, mais personne n'a jamais répondu à  son problème.
http://www.cocoabuilder.com/archive/message/cocoa/2004/11/16/121744

Quelqu'un a déjà  eu le cas ? Vous avez une idée ? Ou alors c'est simplement moi qui me trompe dans l'utilisation des Custom class ?

+
Chacha

Réponses

  • ClicCoolClicCool Membre
    22:41 modifié #2
    Salut Chacha,

    Les objets issues de la palette d'IB sont déjà  instanciés (sauf les custumViews).
    Leur méthode init n'est donc pas appelée au chargement du nib.

    Utilises plutôt awakeFromNib si tu peux.
  • BruBru Membre
    22:41 modifié #3
    Je confirme.

    Une recherche sur OC (au lieu de Google) t'aurais donné ta réponse, comme celle-ci !

    Heureusement que ClicCool, malgré son age, s'en souvient...

    Bonne prog.

    .
  • ChachaChacha Membre
    22:41 modifié #4
    Hello,

    Ah ben d'accord, moi je croyais que même les objets contenus dans le NIB recevaient un init ! Bon ben alors vous avez raison, awakeFromNib marche bien et résout mon problème.

    dans 1108308598:

    (sauf les custumViews).

    Ouf! Donc mon "Cocoa programming pour MacOS X" ne raconte pas de bêtises ! L'exemple dont je me suis inspiré utilisait effectivement une custom view. Tout s'explique.

    Merci bien en tous cas

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