Obecnie pracuję nad niestandardowym tematem NSButton
. Każdy samouczek lub przewodnik, który znalazłem, wymaga podklasy NSButtonCell
, nawet the guide from Apple.Jak utworzyć niestandardowy pakiet NSButton bez podklasy NSButtonCell?
Wszystkie te wydają się być nieaktualne, ponieważ wszystkie metody komórkowe w NSControl
to deprecated in Yosemite. Nie znalazłem żadnych zaleceń ani wskazówek, których użyć jako substytutu.
Jest to jedyne oświadczenie, udało mi się znaleźć:
Stopniowa Wycofanie NSCell
Mac OS X 10.10 trwa kolejny krok w kierunku ostatecznego Wycofanie komórek. Bezpośredni dostęp do komórki kontrolnej jest odradzany, a metody, które pozwalają na to, będą formalnie przestarzałe w kolejnym wydaniu . Różne interfejsy API na poziomie komórki zostały promowane w różnych podklasach Control w celu zapewnienia dostępu bez komórek do ważnej funkcji . NSLevelIndicator, NSTextField, NSSearchField, NSSlider, i NSPathControl mają wszystkie nowe właściwości do tego celu. Oparte na komórkach NSTableViews są obecnie nieaktualne, a NSTableViews oparte na widoku powinny być używane zamiast tego. Matrix-based NSBrowsers są również przestarzałe na rzecz interfejsu użytkownika opartego na elementach.
Fragment: AppKit Release Notes for OS X v10.10
Brak słów na NSButton
chociaż.
NSTextField
obsługuje widoki warstwowe; z tego powodu próbowałem tego samego podejścia na moim NSButton
, ale to nie ma wpływu.
var btn = NSButton(NSMakeRect(0, 0, 50, 20))
btn.wantsLayer = true
btn.bordered = false
btn.layer?.backgroundColor = NSColor(calibratedWhite: 0.99, alpha: 1).CGColor
btn.layer?.borderWidth = 1
btn.layer?.borderColor = NSColor(calibratedWhite: 0.81, alpha: 1).CGColor
Jako małą notatkę, oszukuję, jeśli to możliwe, utworzyłem niestandardowe widoki, a następnie utworzyłem niewidoczny przycisk na górze. Oszczędzi dużo bólu głowy. –
Możesz po prostu podać swój motyw jako obraz tła przycisku. –
@MattyAyOh wydaje się łatwe, ale bardziej przypomina hack.Nie sądzę, że jest to zamierzony sposób na zrobienie tego i chciałbym poznać zamierzony sposób. Ale dzięki za udostępnienie tej sztuczki. – Afterlame