Je cherche à insérer le contenu d'un NSTableView afin qu'il y ait un espace entre le haut de la vue table et la première cellule.NSTableView content view insert
Sur iOS, c'est facile avec UITableView - réalisé en utilisant setContentInset :.
Je cherche à insérer le contenu d'un NSTableView afin qu'il y ait un espace entre le haut de la vue table et la première cellule.NSTableView content view insert
Sur iOS, c'est facile avec UITableView - réalisé en utilisant setContentInset :.
Réactivez les en-têtes et remplacez la vue d'en-tête par votre propre sous-classe. Surchargez son -drawRect: pour dessiner seulement votre couleur de fond. Remplacez également -headerRectOfColumn: pour empêcher l'affichage des en-têtes de colonne. Je ne suis pas sûr si cela empêche le glissement de la colonne ou le tri mais je parie que c'est le cas.
Ceci a été choisi comme réponse mais n'agit pas de la même façon: l'en-tête de couleur sera toujours visible même si vous faites défiler vers le bas. – Dan2552
Oui, ça sonnait comme si c'était ce que voulait l'affiche originale (surtout depuis qu'il a accepté la réponse). Comme il n'y a pas de propriété contentInset, c'est ce que vous obtiendrez le plus proche sans insérer de ligne factice ni définir une vue de cellule avec une taille/disposition de ligne de cas spéciale pour la condition row == 0. –
Ce n'est pas très propre mais vous pouvez y arriver en ayant la première rangée plus haut que le reste. Mettre en œuvre heightOfRow
Table méthode déléguée:
- (CGFloat)tableView:(NSTableView *)tableView heightOfRow:(NSInteger)row
{
if (row == 0) {
return normalRowHeight + topPadding;
} else {
return normalRowHeight;
}
}
L'inconvénient est que vous devrez également mettre en œuvre sur mesure et mettre en évidence le dessin cellule personnalisée pour tenir compte de l'espace supplémentaire pour la première ligne.
Que voulez-vous dire par «le haut de la vue de la table»? La vue d'en-tête? Ou voulez-vous l'écart au-dessus de la vue d'en-tête? –
Il s'agit d'une vue de table sans vue d'en-tête. Je veux juste que la première cellule commence à une position que je définis. – firstresponder