丸みを帯びたビューの透明なNSWindowを作成しようとしています。
透明なウィンドウで丸みを帯びたビューを作成しようとしています。
これが今のように見えます:(隅にある小さな点を見てください)
境界線の半径を10pxに設定した別の例を次に示します(NSView drawRectで設定)。
私はこのAppleサンプルのコードを使用しています:https ://developer.apple.com/library/mac/#samplecode/RoundTransparentWindow/Introduction/Intro.html
具体的には、NSWindowサブクラスのこのメソッド:
- (id)initWithContentRect:(NSRect)contentRect
styleMask:(NSUInteger)aStyle
backing:(NSBackingStoreType)bufferingType
defer:(BOOL)flag {
// Using NSBorderlessWindowMask results in a window without a title bar.
self = [super initWithContentRect:contentRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO];
if (self != nil) {
// Start with no transparency for all drawing into the window
[self setAlphaValue:1.0];
// Turn off opacity so that the parts of the window that are not drawn into are transparent.
[self setOpaque:NO];
[self setBackgroundColor:[NSColor clearColor]];
}
return self;
}
そしてこれは私のNSViewサブクラスにあります:
- (void)drawRect:(NSRect)dirtyRect
{
[[NSColor redColor] set];
NSBezierPath* thePath = [NSBezierPath bezierPath];
[thePath appendBezierPathWithRoundedRect:dirtyRect xRadius:3 yRadius:3];
[thePath fill];
}
誰かが私がここで欠けているものを教えてもらえますか?
ありがとう。