创建具有自定义背景图像的NSBUTTON的最佳方法是什么,该图像能够具有可变宽度,而不会使角圈外观伸展?我知道有方便的方法可以与Uibutton一起做到这一点: http://jainmarket.blogspot.com/2009/04/create-uibuttonbutton-with-images.html 但是我在Nsbutton没有看到类似的东西。

有帮助吗?

解决方案

我需要有一个自定义按钮背景,这就是我的做法。我做了一个NSBUTTON子类和Overrode DrawRect方法:

- (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];
}

然后,我可以使用接口构建器放置按钮,并且要获取自定义图形,我只需要将课程更改为新的子类。

其他提示

这对我来说很好:

[self.addBuddyCommitButton.cell setBezelStyle:NSRoundedBezelStyle];

NSButton 背景图像没有相同的便利方法 UIButton (这很奇怪,这是希望苹果桥的差距)。您需要创建一个自定义按钮我的子类 NSView 并自己处理可变宽度并弯曲。我认为这并不容易,但我认为这也不是很困难的。

该视频解释了一种似乎很简单的方法,只需要一个按钮的图像: http://youtu.be/7mzjxpoo_xu

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top