NSMatrix mode de tracking

mimimimi Membre
10:39 modifié dans API AppKit #1
J'ai besoin d'aide pour ma petite application Cocoa.

Je veux remplir un tableau d'entier avec deux valeurs en
utilisant une GUI.
Mon application définit donc un NSMatrix de NSButtonCell.
Je sais récupèrer la valeur de chaque cell avec
[cell intValue].
J'ai réglé type des NSButtonCells a switch et
le mode de la matrix à  List.
Le comportement avec la souris me conviendrait presque
mais la sélection disparait lorsque l'on déplace la souris
J'aimerai que les cells se change en 'on' lorsque je libère la souris.
Ce serait une sorte de mélange entre le mode tracking et list.
Comment faire cela.
cordialement mm

Réponses

  • CéroceCéroce Membre, Modérateur
    10:39 modifié #2
    dans 1299177736:

    Je veux remplir un tableau d'entier avec deux valeurs en
    utilisant une GUI.
    Mon application définit donc un NSMatrix de NSButtonCell.

    Déjà , là , je ne comprends plus. Pourquoi ne pas utiliser une NSTableView ?
  • mimimimi Membre
    10:39 modifié #3
    je veux remplir un char* T[30][30] en C qui figure des booléens (libre ou occupé)
    Je veux dessiner une forme que je dois remplir avec de pentaminos.  Des carrés noirs
    sont plus figuratifs que des caractères.
    Pouvoir sélectionner des rectangles serait pratique.
    mm
    .
  • CéroceCéroce Membre, Modérateur
    10:39 modifié #4
    OK, je comprends mieux, tu parlais d'un tableau d'entiers dans ton premier message.

    Je viens de le faire sous IB. J'ai fait en sorte que la cell affiche un + quand elle est cochée et un - quand elle est décochée.

    Pour cela j'ai pris une NSCheckbox.
    Image=NSAddTemplate
    Alt. Image = NSRemoveTemplate
    Position = Carré

    Je n'ai pas changé ces paramètres:
    Bezel=Bevel
    Type=Switch

    Ensuite menu Layout > Embed Object in > Matrix, puis mise à  la bonne taille en maintenant la touche alt appuyée.


    Pour savoir si la case est cochée:
    if([cell state] == NSOnState)
  • mimimimi Membre
    10:39 modifié #5
    Je sais faire tout ça. Ma question portait sur le comportement de la souris pour basculer tout un rectangle de cell à  la fois.
    Quelles méthodes modifiées ?

    merci de votre réponse.
  • CéroceCéroce Membre, Modérateur
    10:39 modifié #6
    Sans être catégorique, je ne pense pas qu'on puisse.
    Le comportement de n'importe quel contrôle est que le suivi se fasse uniquement si l'appui du bouton souris a eu lieu dedans.

    À mon avis, la seule solution est de créer une sous-classe de NSView. De toute façon, tu seras y vite obligée. ça représente un travail certain, mais ce n'est pas très compliqué.
  • mimimimi Membre
    10:39 modifié #7
    Pourtant avec le mode list de la NSMatrix on peut mettre en valeur (highlight) tout un rectangle.
    Comment récupérer cet état ?
  • devulderdevulder Membre
    10:39 modifié #8
    dans 1299245379:

    Pourtant avec le mode list de la NSMatrix on peut mettre en valeur (highlight) tout un rectangle.
    Comment récupérer cet état ?


    Hello,

    La méthode selectedCells te renvoie un tableau NSArray * avec la liste des cellules highlighted.

  • mimimimi Membre
    10:39 modifié #9
    Oui; Mais comment rendre cette sélection permanente. Faire [cell setState:NSOnState] n'a pas l'air de suffire.

    PS . Je vais m'absenter quelques jours. Ne vous offusquez pas de mon silence. A+

  • devulderdevulder Membre
    10:39 modifié #10
    dans 1299278191:

    Oui; Mais comment rendre cette sélection permanente. Faire [cell setState:NSOnState] n'a pas l'air de suffire.

    PS . Je vais m'absenter quelques jours. Ne vous offusquez pas de mon silence. A+


    Voir alors du coté de la méthode setSelectionFrom:to:anchor:highlight:
Connectez-vous ou Inscrivez-vous pour répondre.