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

それからもう 1 つ問題があります。結果として生じる 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 に答える