6

我正在尝试使用 BWToolkit 制作 HUD 样式的按钮。由于 Xcode 4 不支持 IB 插件,我不得不通过代码制作这个按钮。导入框架并导入标头后,我尝试了以下操作:

BWTransparentCheckbox *button = [[BWTransparentCheckbox alloc] initWithFrame:NSMakeRect(0, 0, 100, 20)];
[self addSubview:button]; 

我希望这个漂亮的按钮:

按钮

但是,这就是我得到的(减去黑色边框):

按钮

知道我在这里做错了什么吗?

4

2 回答 2

7

您必须为按钮创建正确的单元格。这样的事情会让你更接近:

BWTransparentButton *button = [[BWTransparentButton alloc] initWithFrame:NSMakeRect(0, 0, 136, 28)];
BWTransparentButtonCell *buttonCell = [[BWTransparentButtonCell alloc] init];
[button setCell:buttonCell];
[buttonCell setBezelStyle:NSRoundedBezelStyle];
[buttonCell release];
[self addSubview:button];
[button release];
于 2011-03-15T01:51:50.907 回答
2

您还可以在 Interface Builder 中使用常规按钮并更改它们的类。按钮类应设置为BWTransparentButton,单元格类应设置为BWTransparentButtonCell

然后还有一个额外的问题,生成的 HUD 样式按钮太低了。您无法从 IB 更改按钮高度,但您可以创建自定义BWTransparentButton子类并在那里设置所需的高度:

- (void) awakeFromNib
{
    [super awakeFromNib];
    NSRect frame = [self frame];
    frame.origin.y -= 9;
    frame.size.height += 9;
    self.frame = frame;
}

这是一个愚蠢的解决方案,但对我来说,它仍然胜过在代码中创建按钮。我希望 Apple 能够在标准库中包含 HUD 样式的控件,或者至少让 Interface Builder 插件尽快工作……</p>

于 2011-05-13T13:58:47.847 回答