Question

J'ai un NSTableView opinion-qui est rempli par les liaisons. Mes TextField et imageViews sont liés aux propriétés de objectValue du NSTableCellView.

Si je veux avoir un bouton d'édition / informations dans mon NSTableCellView:

  1. Qui devrait être la cible de l'action du bouton?

  2. Comment la cible obtenir le objectValue qui est associé à la cellule que le bouton est?

Je finalement comme pour montrer une popover / feuille sur la base objectValue.

Était-ce utile?

La solution

Votre classe de contrôleur peut être la cible. Pour obtenir la valeur de l'objet:

- (IBAction)showPopover:(id)sender {
    NSButton *button = (NSButton *)sender;
    id representedObject = [(NSTableCellView *)[button superview] objectValue];
}

Ou, utilisez une sous-classe de NSTableCellView, faire la cellule cible de voir l'action du bouton et [self objectValue] d'appel pour obtenir l'objet.

Autres conseils

J'ai trouvé une réponse supplémentaire: La réponse ci-dessus semble supposer que vous utilisez des liaisons votre point de vue de la table. Depuis que je suis un peu un noob j'ai trouvé un moyen d'obtenir le bouton dans la vue de la cellule du tableau.

- (IBAction)getCellButton:(id)sender {
     int row = [xmlTable rowForView:sender];
}

De cette façon, lorsque vous cliquez sur le bouton à l'intérieur de la ligne, vous ne devez pas avoir la ligne sélectionnée. Il renvoie la valeur int de la ligne pour correspondre avec une source de données dans un tableau sans fixations.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top