Jaki jest najlepszy sposób utworzenia pliku NSB z niestandardowym obrazem tła, który może mieć zmienną szerokość, bez konieczności rozciągania ramki narożnej? Wiem, że istnieją metody wygody, aby to zrobić z UIButton: http://jainmarket.blogspot.com/2009/04/create-uibuttonbutton-with-images.html, ale nie widziałem nic podobnego w NSButton.NSButton o zmiennej szerokości, zaokrąglonych narożnikach
Odpowiedz
Potrzebowałem mieć niestandardowe tło przycisków, oto jak to zrobiłem. Zrobiłem podklasy NSButton i overrode drawRect metody:
- (void)drawRect:(NSRect)dirtyRect
{
// My buttons don't have a variable height, so I make sure that the height is fixed
if (self.frame.size.height != 22) {
self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y, self.frame.size.width,
22.0f);
}
//
switch (self.state) {
// Onstate graphics
case NSOnState:
NSDrawThreePartImage(self.bounds,
[NSImage imageNamed:@"btnmain_lb_h.png"], [NSImage imageNamed:@"btnmain_bg_h.png"], [NSImage imageNamed:@"btnmain_rb_h.png"],
NO, NSCompositeSourceAtop, 1.0, NO);
// Offstate graphics
default:
case NSOffState:
NSDrawThreePartImage(self.bounds,
[NSImage imageNamed:@"btnmain_lb.png"], [NSImage imageNamed:@"btnmain_bg.png"], [NSImage imageNamed:@"btnmain_rb.png"],
NO, NSCompositeSourceAtop, 1.0, NO);
break;
}
[super drawRect:dirtyRect];
}
Wtedy mógłbym umieścić przyciski za pomocą interfejsu Builder, i aby uzyskać niestandardowe grafiki Muszę tylko zmienić klasę do mojego nowego podklasy.
NSButton
nie ma tych samych metod wygody dla obrazów tła, co UIButton
(co jest dziwne i mamy nadzieję, że Apple pokona tę lukę). Będziesz musiał utworzyć niestandardowy przycisk mój podklasy NSView
i obsługiwać zmienną szerokość i rogi siebie. Nie sądzę, że będzie to łatwe, ale nie sądzę, że byłoby to bardzo trudne.
to działało perfekcyjnie dla mnie:
[self.addBuddyCommitButton.cell setBezelStyle:NSRoundedBezelStyle];
po nadpisaniu tablicy drawBezelWithFrame: (NSRect) inView: (NSView *) controlView działa! – tomeron11
Ten film wyjaśnia metodę, która wydaje się być proste i wymaga tylko jednego obrazu przycisku: http://youtu.be/7MZJxPOo_xU
- 1. Dodatkowe chromowane obramowanie na <select> elementach zaokrąglonych narożnikach
- 2. Jak narysować ścieżkę o zmiennej szerokości skoku
- 3. Jak utworzyć niestandardowy przycisk NSButton?
- 4. Wyrównanie elementów za pomocą przestrzeni stałej (o zmiennej szerokości)
- 5. UICollectionViewFlowLayout pusta przestrzeń o zmiennej szerokości i wysokości komórki
- 6. Jak wykonać splot w pythonie z Gaussian o zmiennej szerokości?
- 7. Jak działa kodowanie o zmiennej szerokości UTF-8?
- 8. Jak wyświetlić elementy Gridview o zmiennej szerokości w oknie 8?
- 9. NSButton + & - Button
- 10. Wykres słupkowy o wysokiej szerokości stosu o wysokiej szerokości geograficznej
- 11. Wrap Tytuł NSButton
- 12. Używanie zaokrąglonych narożników do rysowania
- 13. NSButton setAlignment nie działa
- 14. Pandy: histogram o stałej szerokości
- 15. Utrzymaj tabelę o stałej szerokości
- 16. Multilin TextView o szerokości "wrap_content"
- 17. o zmiennej liczbie argumentów szablony o zmiennej liczbie argumentów szablonu
- 18. podciąg o zmiennej długości
- 19. interpolacja String o zmiennej
- 20. Pobierz ostatnią literę ze zmiennej o zmiennej
- 21. NSButton białe tło po kliknięciu
- 22. Tworzenie panelu NSButton open fonts
- 23. Nie można ustawić wysokości NSButton
- 24. Jak utworzyć tabelę o szerokości 100% z kolumnami o jednakowej szerokości?
- 25. Jak używać NSRegularExpression na ciągach Swift ze znakami Unicode o zmiennej szerokości?
- 26. Jak wyśrodkować/wyrównać Mapy Google w pliku div o zmiennej szerokości
- 27. Jak narysować zaokrąglony prostokąt o zmiennej szerokości obramowania wewnątrz określonych granic
- 28. Usuwanie zaokrąglonych krawędzi dostosowanego paska Seekbar?
- 29. Podział linii w rozpiętości o określonej szerokości?
- 30. RecyclerView GridLayoutManager z nagłówkiem o pełnej szerokości
Shame prawo? :) Nie tak, jak wygoda w UIButtonie jest naprawdę wygodna. – BadPirate