itok's Lab

昔の開発ネタを記録として残してます

Windowの背景を全て消す

自前のイメージなんかをwindowとして使いたい場合、タイトルバーもいらないし、四角いWindowの下地もいらない、と。

タイトルバーなどは初期化時。NSBorderlessWindowMaskを使います。普通はサブクラスとして実装するかな。

[[NSWindow alloc] initWithContentRect:contentRect styleMask:NSBorderlessWindowMask backing:bufferingType defer:deferCreation];

背景消しはまた別で二つのメソッドを併用。

[window setBackgroundColor:[NSColor clearColor]];
[window setOpaque:NO];

1行目 clearColor というのはwhite=0, alpha=0のことです。で、2行目は不透明さの指定なので NO となります、要注意。頻繁に描画を繰り返す場合はこれだけではうまくいかないこともあるみたいですが、固定のイメージを表示している分には問題ないかと。