Héritage de NSViewController

Je lance mon second sujet du jour.



Pour faire des tracés, on crée une vue "Custom View", instance d'une classe héritée de NSView, en surchargeant sa méthode drawRect avec les instructions de tracés.



Pour mettre une vue sur une fenêtre, on crée une classe dérivée de NSViewController, liée à  un fichier XIB contenant une vue pourvue de contrôles.



Maintenant, la question est : NSViewController hérite-t-elle de NSView ? Je veux dire, peut-on surcharger une méthode drawRect dans une classe NSViewController pour y faire des tracés ? Le but étant de faire se succéder des vues sur une fenêtre-mère avec des tracés différents. Je souhaiterai , revival 80's oblige, refaire une version de "l'Aigle d'Or", jeu sorti sur Oric 1/Atmos dans les années 80 ou on promenait une espèce de Playmobil dans les pièces d'un château médiéval à  la recherche de différents artefacts .

Réponses

  • CéroceCéroce Membre, Modérateur


    NSViewController hérite-t-elle de NSView ?


    Regarder la doc de NSViewController pourrait, sans doute aucun, donner la réponse.




    Je veux dire, peut-on surcharger une méthode drawRect dans une classe NSViewController pour y faire des tracés ?


    À quoi bon ?

    Quelque soit le texte d'un label, il s'agit toujours d'un NSTextField, on lui fournit le texte à  afficher, on ne s'amuse pas à  créer une sous-classe pour chaque texte possible.

    Là  ce serait pareil. Tu aurais une seule sous-classe de NSView, et il faut que tu lui fournisses les données à  afficher, par exemple, un objet qui donne la liste des images constituant le décor.



    De toute façon, utiliser Cocoa pour faire des jeux est une mauvaise idée. Ce sera très complexe à  faire fonctionner, et le résultat sera décevant.

    Utilise Cocos 2D.
  • AliGatorAliGator Membre, Modérateur
    NSViewController est un contrôlleur. Il contrôle une vue, certes, donc a un lien vers la vue qu'il gère et affiche, mais c'est un contrôlleur quand même.

    NSView est une vue.



    Ce sont donc des objets bien différents et séparés dans le MVC.

    Je te suggère de relire un peu la littérature sur le pattern MVC pour bien comprendre les principes et voir que ces 2 classes sont clairement séparées, c'est tout l'objet du MVC justement.
  • On peut faire tout ce que tu veux faire dans une NSView (Il suffit de donner ensuite le nom de ta classe à  la custom view dans IB et le tour est joué).



    Personnellement sinon, liés à  des fichiers xib, j'utilise plutôt NSWindowController pour y écrire mes méthodes appelées depuis l'interface graphique dans la fenêtre.
Connectez-vous ou Inscrivez-vous pour répondre.