2009-10-28 32 views
8

Jak utworzyć niestandardowy przycisk NSButton? Nie mam na myśli w mały sposób jak zmiana koloru tła lub zmiana z zaokrąglonych krawędzi na kwadratowe. Chcę zastąpić cały wygląd przycisku. Czy to możliwe w Cocoa? Oczywiście musiałbym podklasować klasę NSButton i odejść stamtąd. Każda pomoc byłaby bardzo cenna.Jak utworzyć niestandardowy przycisk NSButton?

Odpowiedz

12

Właściwie musisz podklasę NSButtonCell. Powinieneś przeczytać na ten temat Apple's documentation, aby lepiej zrozumieć, jak wchodzą w interakcje. Prawdopodobnie będziesz nadal chciał podklasę NSButton, aby używał twojej podklasy NSButtonCell.

Dla przycisku większość pracy jest wykonywana w drawBezelWithFrame:inView:. Jeśli chcesz zmienić sposób rysowania tekstu lub obrazu, zastąpisz drawText:withFrame:inView: i drawImage:withFrame:inView:.

+4

Tak, to najlepszy sposób na zrobienie tego. Uwaga: jeśli używasz Interface Builder i Mac OS 10.5, nie musisz już podklasy NSButton. Po prostu przeciągnij/upuść przycisk w stalówce, a następnie zmień klasę komórek na niestandardową klasę. – Leibowitzn

+1

To prawda. Co więcej, jedyny czas, jaki naprawdę potrzebujesz do podklasy 'NSButton', jest jeśli programujesz formanty. – Alex

+1

Czy mogę po prostu zastąpić wygląd, ustawiając właściwość? Mogłem zmienić wygląd, używając właściwości "obrazu" przycisku, ale dostałem paskudny szary prostokąt za każdym razem, gdy kliknięto przycisk niestandardowy (obraz ma przezroczystość). Dzięki. – adib

Powiązane problemy