Dans IB, démarrez un XIB vide. Maintenant, allez à la palette et faites glisser dans un UITableViewCell, double-cliquez pour afficher et éditer.
ne doit inclure qu'un seul UITableViewCell dans IB, ou vous ne pouvez pas définir un identificateur de réutilisation (par opposition à l'affichage d'un UIView dans IB comme classe UITableViewCell personnalisée)). Ensuite, vous pouvez ajouter des étiquettes ou ce que vous voulez dans la cellule, ainsi que définir l'identifiant de réutilisation ou définir n'importe quel indicateur de divulgation que vous pourriez aimer.
Pour utiliser, vous fournissez le code comme celui-ci dans le tableView: cellForRow: atIndexPath: Méthode:
YourCustomCellClass *cell = (YourCustomCellClass *)[tableView dequeueReusableCellWithIdentifier:<IDYouSetInXIBFile>];
if (cell == nil)
{
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:<YourXIBName> owner:self options:nil];
id firstObject = [topLevelObjects objectAtIndex:0];
if ([ firstObject isKindOfClass:[UITableViewCell class]])
cell = firstObject;
else cell = [topLevelObjects objectAtIndex:1];
}
Si vous avez des étiquettes ou d'autres contrôles que vous souhaitez référencer dans votre code, les câbler en IB votre classe de cellules personnalisées - PAS le propriétaire du fichier, que vous n'avez jamais besoin de définir en utilisant le code ci-dessus (vous pouvez le laisser comme NSObject). Editer: Je note que vous cherchez vraiment une réponse NSCell, mais l'approche du code pour utiliser IB devrait être identique dans Cocoa avec le code Cocoa Touch que j'ai utilisé ci-dessus car loadNibNamed est un appel Cocoa standard.
Maintenant que NSTableView prend en charge NSTableCellView, je me demande s'il existe une meilleure façon de prendre en charge tout ce qui concerne IB. – tofutim