problème drawrect

bonjour à  tous, pourriez vous m'aider?


 


J'aimerais savoir comment passer un paramètre à  la méthode drawrect pour modifier mon affichage selon le choix d'un utilisateur? aussi j'aimerais savoir si la méthode drawrect est la seul méthode qui permette l'affichage de composants tel que points et rectangle dans une frame en effet dans ma vue quand j'essaye de dessiner un rectangle par exemple cela ne fonctionne que dans drawrect et non dans une méthode que j'aurais crée dans ma vue.


Réponses

  • CéroceCéroce Membre, Modérateur
    octobre 2015 modifié #2

    bonjour à  tous, pourriez vous m'aider?

    C'est l'un des buts d'un forum, aussi nous allons essayer!
     

    J'aimerais savoir comment passer un paramètre à  la méthode drawrect pour modifier mon affichage selon le choix d'un utilisateur?

    Ta classe qui hérite de NSView doit avoir une propriété. Ensuite, la propriété sera accessible dans -drawRect:, comme toutes les variables d'instance.
     

    aussi j'aimerais savoir si la méthode drawrect est la seul méthode qui permette l'affichage de composants tel que points et rectangle dans une frame en effet dans ma vue quand j'essaye de dessiner un rectangle par exemple cela ne fonctionne que dans drawrect et non dans une méthode que j'aurais crée dans ma vue.

    Pour simplifier, on va dire que oui.

    Le dessin se fait toujours dans un "contexte" graphique (= une fenêtre, = une page, ou un contexte offscreen). Dans drawRect:, on est sûr que le contexte courant a été fixé. Donc, c'est pas la peine d'appeler -[NSBezierPath stroke] ou -[NSColor set] ailleurs que dans -drawRect; ça ne marcherait pas.

    Par ailleurs, on ne dessine pas à  n'importe quel moment: les vues servant à  l'affichage des données calculées, Cocoa ne nous donne la main pour le dessin que quand tous les événements ont été traités et que nous avons mis à  jour les données internes.

    Pour finir, la méthode -[NSView setNeedsDisplay:] permet d'indiquer à  Cocoa qu'elle devra appeler -drawRect: au prochain tour.

    P.S.: ce que j'écris est vrai sur iOS comme sur Mac, cependant, sous iOS, on va plutôt chercher à  combiner plusieurs UIViews, si possible, pour des raisons de performances.
  • Merci pour votre réponse,





     

    Ta classe qui hérite de NSView doit avoir une propriété. Ensuite, la propriété sera accessible dans -drawRect:, comme toutes les variables d'instance.

     

     




    j'aimerai récupérer un nombre d'un textfield situer dans mon storyboard,si j'ai bien compris  j'arrive à  le récupérer dans mon viewcontroller, du coupsi j'ai bien compris je dois créer un attribut dans view puis avec un setter l'initialiser via le viewcontroller ensuite l'utiliser dans drawrect avec le getter associé mais je ne comprend ce que vous voulez dire par propriété? auriez-vous un exemple s'il vous plaà®t ? merci pour votre aide.


  • Pourrais-tu te présenter dans le forum adéquat ?


    Cela nous aiderait à  connaà®tre ton niveau (connaissances en Objective-C/Swift, Cocoa, voire POO, voire programmation tout court), afin de mieux te répondre et ne pas te sortir des trucs complexes auxquels tu ne comprendrais rien ou tergiverser pour un truc "simple".


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