我正在尝试使用BWToolkit制作HUD风格的按钮。由于Xcode 4不支持IB插件,我不得不通过代码创建此按钮。导入框架并导入标题后,我尝试了这个:
BWTransparentCheckbox *button = [[BWTransparentCheckbox alloc] initWithFrame:NSMakeRect(0, 0, 100, 20)];
[self addSubview:button];
我希望这个漂亮的按钮:
然而,这是我得到的(减去黑色边框):
知道我在这里做错了吗?
答案 0 :(得分: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];
答案 1 :(得分: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插件工作了......