NSWindowのサブクラスを使用して、自分のアプリケーション用のウィンドウをカスタマイズしています。 私はすべての設定をしましたが、コーナーを丸くする方法がわかりません。 現在のところ、私のウィンドウは透明な長方形のウィンドウで、いくつかのボタン、ラベル、テキストフィールドがあります。目的C、丸められた角のカスタムウィンドウ?
クラスが含まれています:
#import "TransparentRoundRectWindow.h"
@implementation TransparentRoundRectWindow
-(id)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag
{
self = [super initWithContentRect:contentRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO];
if (self) {
[self setAlphaValue:0.75];
[self setOpaque:YES];
[self setHasShadow:YES];
[self setBackgroundColor:[NSColor clearColor]];
}
return self;
}
-(BOOL)canBecomeKeyWindow
{
return YES;
}
は、私はちょうど今、ラウンドコーナーを作成する必要があります。私は同様の状況を探してみましたが、そのうちのいくつかがdrawRectメソッドをオーバーライドするよう説明していましたが、それらを動作させることができませんでした。 どうすればこのことができますか? (私はMac OS X Lionを使用しています)
ありがとうございます。
感謝。それらは2つのクラスに分かれていますか?私はそれらをすべて同じクラスに入れました。私はObjective-cの新機能ですので、ウィンドウのビューサブクラスを追加する方法について簡単に説明できればもっと助かります。また、setOpaqueをNOに変更すると、完全に透明なウィンドウが表示されますが、部分的に透明にしたい(アルファベットが0.75)だけです。私は何か間違っているのですか? – Dennis
@Dennisこれを行う方法の説明を追加しました。 –
はい、それはついに実現しました!!どうもありがとうございます。ただし、ウィンドウ内のすべてのオブジェクトには、その白い角があります。テキストフィールド、ボタン、ラベルに余分な四角形があります。とにかくそれらを取り除くことはありますか?これらのオブジェクトのそれぞれにサブクラスを作成する必要がありますか? – Dennis