Cách tốt nhất để tạo NSButton với hình nền tùy chỉnh là gì, có thể có chiều rộng thay đổi, mà không làm cho khung bezel góc bị kéo dài? Tôi biết có những phương pháp thuận tiện để làm điều này với UIButton: http://jainmarket.blogspot.com/2009/04/create-uibuttonbutton-with-images.html nhưng tôi đã không nhìn thấy bất cứ điều gì tương tự như trong NSButton.NSButton có chiều rộng kích thước thay đổi, góc tròn
Trả lời
Tôi cần có nền nút tùy chỉnh, dưới đây là cách tôi đã làm. Tôi đã thực hiện một lớp con NSButton và overrode drawRect phương pháp:
- (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];
}
Sau đó, tôi có thể đặt các nút sử dụng giao diện Builder, và để có được đồ họa tùy chỉnh tôi chỉ phải thay đổi lớp để phân lớp mới của tôi.
NSButton
không có cùng phương pháp tiện lợi cho hình nền như UIButton
(kỳ lạ và đây là hy vọng Apple sẽ thu hẹp khoảng cách đó). Bạn sẽ cần phải tạo một nút tùy chỉnh của tôi phân lớp của tôi NSView
và tự xử lý các chiều rộng và góc biến. Tôi không nghĩ rằng nó sẽ dễ dàng, nhưng tôi không nghĩ rằng nó sẽ là khó khăn khủng khiếp hoặc.
này làm việc hoàn toàn tốt đẹp cho tôi:
[self.addBuddyCommitButton.cell setBezelStyle:NSRoundedBezelStyle];
sau khi ghi đè drawBezelWithFrame: (NSRect) khung inView: (NSView *) controlView nó hoạt động! – tomeron11
Video này giải thích một phương pháp mà có vẻ là đơn giản và chỉ cần một hình ảnh của nút: http://youtu.be/7MZJxPOo_xU
- 1. FancyBox thay đổi kích thước chiều rộng
- 2. Kích thước, Chỉ thay đổi chiều rộng/chiều cao
- 3. JQGrid: Thay đổi kích thước chiều rộng lưới sau khi đổi kích thước cột
- 4. ImageMagick - Thay đổi kích thước thành chiều rộng tối đa
- 5. Mẫu điều khiển nút có vòng tròn có thể thay đổi kích thước
- 6. jQuery tablesorter + đổi kích thước chiều rộng cột
- 7. Tự động thay đổi kích thước chiều rộng và chiều cao bằng hộp thoại jQuery
- 8. Thay đổi kích thước/tỷ lệ facebook như nút (chiều cao và chiều rộng)
- 9. hình nền css thay đổi kích thước chiều rộng chiều cao cây trồng
- 10. Thay đổi kích thước JScrollpane với nội dung có kích thước thay đổi
- 11. Chiều rộng tối thiểu trong đổi kích thước cửa sổ
- 12. thay đổi kích thước hình ảnh ckfinder
- 13. Thay đổi chiều rộng Spinner DropDown
- 14. Thay đổi kích thước khung UIWebView không thay đổi kích thước nội dung bên trong
- 15. DataGridView cột tự động điều chỉnh chiều rộng và thay đổi kích thước
- 16. jQuery - thay đổi kích thước đầu vào biểu mẫu dựa trên chiều rộng của giá trị?
- 17. CSS: Tự động thay đổi kích thước div để phù hợp với chiều rộng vùng chứa
- 18. thay đổi kích thước ô trong quá khứ tối đa chiều rộng
- 19. Chiều rộng tối đa CSS không thay đổi kích thước tỷ lệ
- 20. CSS 100% chiều rộng trên trình duyệt thay đổi kích thước
- 21. Cách thay đổi kích thước chiều rộng của hộp thoại Jquery sau khi khởi tạo
- 22. Spinner Primefaces - Cách thay đổi chiều rộng
- 23. iPhone có chiều rộng và kích thước hình ảnh
- 24. Thay đổi kích thước cửa sổ theo chiều dọc
- 25. Chiều cao jQuery() không thay đổi kích thước
- 26. Kích thước trình duyệt (chiều rộng và chiều cao)
- 27. JQUERY UI Accordion Thay đổi kích thước trên cửa sổ Thay đổi kích thước?
- 28. Ô bảng tùy chỉnh iOS không tự động thay đổi kích thước chiều rộng cho thay đổi định hướng
- 29. phương pháp setImage thay đổi chiều rộng UIBarButtonItem, ngay cả khi kích thước hình ảnh không thay đổi
- 30. thay đổi kích thước bước mở rộng trục trong ggplot2
xấu hổ phải không? :) Không giống như phương pháp tiện lợi trong UIButton thực sự là thuận tiện. – BadPirate