7
votes

Comment supprimer la bordure de NSTableView et modifier la couleur de sélection des cellules de la même manière que celle de Finder's?

Je fais une application de cacao pour yosemite.

J'ai ajouté une vue NSTableView basée sur l'interface dans l'interface Builder, mais la bordure de 2 pixels largeur et plus épaisse que celle de Yosemite's Finder. Et la couleur de sélection de cellules est bleue, tandis que le Finder de Yosemite est gris.

Entrez la description de l'image ici

Entrez la description de l'image ici

Et c'est ainsi que ressemble à la vue sur la table du Finder de Yosemite.

Entrez la description de l'image ici

J'ai vérifié les paramètres dans l'interface Builder. La vue Super Scroll du paramètre de trame de NSTableView est (0,0,149.257): Entrez la description de l'image ici

Lorsque le paramètre de trame de la vue du clip est (1, 1, 147, 255) et ne peut pas être modifié.

Entrez la description de l'image ici

Et comment faire un même NSTableView en tant que Finder de Yosemite?

Merci une tonne!


1 commentaires

Notez la description de votre vue de défilement: " Bordé Vue de défilement - Vue de table". Vérifiez les attributs de la vue de défilement et éteignez la bordure. Le diviseur de 1 pixel est probablement de la vue scindée.


3 Réponses :


13
votes

La barre latérale du Finder n'est pas une vue de table, c'est une liste la liste des sources nsoutlineview :

Entrez la description de l'image ici

La bordure est appliquée autour de la vue de défilement jointe:

Entrez la description de l'image ici

Notez également qu'une norme nsoutlineview vous permet d'ajuster le style de surbrillance de l'interface de l'interface:

Entrez la description de l'image ici


0 commentaires

2
votes

Dans mon expérience Les lignes sélectionnées sont toujours peintes bleues, même lorsque le style de surbrillance "Liste des sources" est sélectionné. Pour éviter cela, j'ai besoin d'empêcher la table ou la vue de la vue de devenir le premier répondant en le sous-classant et en ajoutant

- (NSTableRowView *)tableView:(NSTableView *)tableView rowViewForRow:(NSInteger)row


0 commentaires

0
votes

à quiconque veut supprimer la bordure NSTableView ...

Mon exigence était de supprimer la couleur de la bordure de la nstableview afin que cela devrait ressembler à une boîte blanche. Essayé toutes les propriétés et toutes les forums mais ne pouvait pas trouver un moyen de le faire. Enfin, j'ai trouvé un hachoir sale dans le scénario qui pourrait résoudre le problème. Si quelqu'un a une meilleure option, s'il vous plaît laissez-nous savoir.

  1. Incorporer le NSTableView dans une boîte à Customs. Définissez la case Borderdype comme «Aucune»
  2. Définissez ensuite les contraintes (gauche, haut, droite et bas) de NSTableView vers la case contenant. Définissez les valeurs sur -2 . de sorte que la bordure NSTableView sera en dehors de la boîte
  3. Maintenant dans Storyboard, sélectionnez le 'Clipview (Nsclipview) de la nstableview. ClipView est la superview du NSTABLIEW
  4. Allez à l'inspecteur de la taille et décochez la propriété "Ajuster automatiquement" de "Contenu Incarts"
  5. Définissez les valeurs sur gauche = 2 , top = 2 , bas = -2 et droit = ​​-2

    c'est ça.


0 commentaires