Je vais supposer que vous faites cela dans un NSTableView à base de cellules, car NSButtonCell n'expose une title
obligatoire, mais il est inutile dans le contexte d'un NSTableView, parce que vous devez lier le NSTableColumn et que expose uniquement une liaison de valeur pour NSTableColumns contenant NSButtonCells. C'est une lacune de la structure, et Google révèle que beaucoup se sont débattus avec.
Une approche consiste à mettre à jour le titre du modèle dans vos méthodes de délégué -tableView:dataCellForTableColumn:row:
et -tableView:willDisplayCell:forTableColumn:row:
. Cela a l'inconvénient de ne pas être mis à jour via KVO lorsque le modèle sous-jacent change. Si cela est important pour votre application, une solution de contournement consiste à rendre le modèle keyPath pour le value
de la case à cocher dépend du modèle keyPath pour le title
de la case à cocher. De cette façon, lorsque le titre change, KVO enverra des notifications pour une modification de la valeur, ce qui entraînera le redessin de la ligne, et ainsi le titre sera mis à jour par la méthode déléguée.
Je remarque que cette question est ancienne, mais une approche plus simple de nos jours serait d'utiliser NSTableViews NSView. Une fois cela fait, vous travaillez avec un contrôle NSButton de première classe, avec des liaisons Value et Title (et un tas d'autres) disponibles. C'est souvent une approche plus réalisable, en supposant que vous ne vous inquiétez pas de la prise en charge de la version du système d'exploitation antérieure à Lion.