gestion de la sélection des objets sous cocoa

beltbelt Membre
05:37 modifié dans API AppKit #1
Bonjour
Sauriez vous si cocoa permet de gérer la sélection et la déselection d'objets ? Je n'ai pas trouvé qq chose de bien clair à  ce sujet. Pour l'instant mes objets sont des simples rectangles que je peux déplacer à  la souris sur une page (dans une NSView).
Merci pour vos réponses.

Réponses

  • Eddy58Eddy58 Membre
    05:37 modifié #2
    Par sélection/déselection, tu entends un système de "poignées" encadrant un ou plusieurs objets graphiques ? Si c'est le cas, je n'ai pas encore entendu parler de classe dédiée (bien que j'en soupçonne l'existence), et il faut tout gérer soi-même. Tu peux aussi faire des recherches du côté de l'open-source. :o
  • beltbelt Membre
    05:37 modifié #3
    C'est effectivement ça que je cherchais.
    A ce propos, sauriez-vous à  quoi peuvent bien servir les méthodes suivantes de NSObjectController ?
    - selectedObjects 
    ? selection 
    J'ai trouvé la doc cocoa peu claire sur ce sujet.
    Et toujours merci pour votre aide.
  • AliGatorAliGator Membre, Modérateur
    05:37 modifié #4
    Salut,

    Si j'ai bien tout compris, les NSObjectController  permettent de contrôller des objets par Bindings. Ils sont faits pour te faciliter la vie en faisant du binding à  tout va.

    Je n'ai jamais utilisé de NSObjectController mais entre autres des NSArrayController et NSTreeController qui se basent un peu sur le même principe : ça gère tout seul une collection d'objets, et après avec les bindings tu lui dis "prend la liste des objets et affiche moi leur propriété 'titre' ici" (binding sur la colonne d'une tableview->content par exemple), et encore "prend l'objet sélectionné et affiche moi sa propriété 'soustitre' ici" (binding sur un TextField->value par exemple).

    Bon mon exemple se base essentiellement sur les NSArrayController, mais bon je pense que pour les NSObjectController c'est un peu dans la même idée.
    Du coup la methode "selection", du moins dans un NSArrayController, te permet de récupérer (souvent par binding mais par code ça marche aussi bien sûr) l'objet sélectionné.
    C'ets à  dire que pour reprendre mon exemple d'une TableView dont tu aurais bindé une colonne avec un NSArrayController, quand la TableView change sa sélection (tu sélectionnes une ligne de la TableView), le NSArrayController est informé de ce changement de sélection et se met à  jour. Du coup si tu as un champ qui est bindé à  NSArrayController : selection.soustitre, il affichera automatiquement le sous-titre de la sélection et si cette dernière change il se mettra tout seul à  jour.

    Donc finalement alors que NSArrayController permet de gérer une collection d'objets, la méthode "selection" de ce dernier permet de dire lequel est "actif en ce moment" (autrement dit "sélectionné").

    Après à  adapter avec les NSObjectControllers que je n'ai jamais utilisé mais j'imagine que c'est la même chose.
  • beltbelt Membre
    05:37 modifié #5
    Merci pour tout ça à  retardement (j'avais un peu zappé la réponse)
Connectez-vous ou Inscrivez-vous pour répondre.