gpt4 book ai didi

cocoa - NSButton 具有可变大小宽度、圆角

转载 作者:行者123 更新时间:2023-12-03 16:10:26 34 4
gpt4 key购买 nike

创建具有自定义背景图像的 NSButton 的最佳方法是什么,它能够具有可变的宽度,而不会使角边框看起来被拉伸(stretch)?我知道有一些方便的方法可以使用 UIButton 执行此操作:http://jainmarket.blogspot.com/2009/04/create-uibuttonbutton-with-images.html但我在 NSButton 中没有看到类似的东西。

最佳答案

我需要一个自定义按钮背景,这就是我的做法。我创建了一个 NSButton 子类并覆盖了 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];
}

然后我可以使用 Interface Builder 放置按钮,并且要获取自定义图形,我只需将类更改为我的新子类。

关于cocoa - NSButton 具有可变大小宽度、圆角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3738482/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com