2009-05-03 8 views
3

Je voudrais créer une case à cocher personnalisée qui fonctionne comme une case à cocher normale, mais qui semble différente, au moment où j'utilise les cases à cocher normales, est-il un moyen de le faire.Comment changer l'apparence d'une case à cocher?

P.S C'est du cacao dont je parle.

Répondre

6

Vous devez remplacer NSButtonCell. Vous utiliserez drawInteriorWithFrame:inView: ou une méthode similaire pour réaliser votre dessin personnalisé. Si vous n'avez jamais utilisé de cellules personnalisées avant que cela ne soit un peu une expérience d'apprentissage, il y a beaucoup de bons conseils, comme this page pour commencer.

Vous pouvez également jeter un oeil à un framework open source comme BGHUDAppKit pour un exemple.

+0

Comment implémentez-vous le BGHUDAppKit? – Joshua

+0

C'est juste un cadre standard, vous pouvez trouver des instructions dans le wiki: http://code.google.com/p/bghudappkit/wiki/UsingFramework –

+0

Comment téléchargez-vous BGHUDAppKit? – Joshua

4

En tant que sidenote, si la seule chose que vous devez faire est de changer l'image 'check' de celle par défaut fournie par Apple, puis allez dans les propriétés du NSButton dans XCode/Interface Builder et sélectionnez une image et un Autre image. La même chose vaut pour les boutons radio.

+0

Il existe deux versions de «l'autre image»: La coche blanche sur fond bleu (lorsque la fenêtre a le focus - les préférences système étant définies sur «bleu» et non «graphite») et la coche noire sur fond blanc (lorsque la la fenêtre n'a pas de focus). Demander la propriété 'alternateImage' et écrire le mage dans un fichier donne la" version active ". Comment puis-je définir une image personnalisée afin qu'elle se comporte de cette façon? (contour noir vs remplissage bleu) –

+0

Aussi -since Yosemite au moins- la coche semble s'animer en position (en zoomant depuis "taille zéro") en cochant la case. Ne ressemble pas à un moyen facile d'échanger le tick par défaut pour mon image personnalisée, et obtenir tous les mêmes effets "gratuitement" ... –

Questions connexes