は、ここでそれを行う方法を示すサンプルプロジェクトです。これを行う最も簡単な方法は、ウィンドウのサイズと配置をnibファイルに設定し、そのクラスをカスタムサブクラスに設定することです。だから、Interface Builderの通常のウィンドウのように見えますが、実行時に必要に応じて表示されます。
@implementation MDBorderlessWindow
- (id)initWithContentRect:(NSRect)contentRect
styleMask:(NSUInteger)windowStyle
backing:(NSBackingStoreType)bufferingType
defer:(BOOL)deferCreation {
if (self = [super initWithContentRect:contentRect
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreBuffered defer:deferCreation]) {
[self setAlphaValue:0.75];
[self setOpaque:NO];
[self setExcludedFromWindowsMenu:NO];
}
return self;
}
アルファ値は、ウィンドウを半透明にします。単にあなたのカスタムNSView
サブクラスであるために、ウィンドウのcontentViewのクラスを設定し、ウィンドウと同様
@implementation MDBlackTransparentView
- (id)initWithFrame:(NSRect)frame {
if (self = [super initWithFrame:frame]) {
}
return self;
}
- (void)drawRect:(NSRect)frame {
NSBezierPath *path = [NSBezierPath bezierPathWithRoundedRect:frame
xRadius:6.0 yRadius:6.0];
[[NSColor blackColor] set];
[path fill];
}
@end
:
また、あなたは丸い四角形を描画するカスタムNSView
サブクラスを作成することができます。 (アウトラインビューモードを使用して、開いている三角形をクリックすると、nibファイル内のウインドウのアイコン内にネストされたNSView
が表示されます)。ここでも、ビューはInterface Builderで普通のように見えますが、実行時には大丈夫です。
次に、NSTextField
を表示の上に置き、それに応じてテキストを設定します。
一般的に、境界線のないウィンドウは扱いにくいことに注意してください(たとえば、ウィンドウをドラッグしたい場合は、その機能を自分で追加する必要があります)。 Appleには、たとえばドラッグを許可する方法のサンプルコードがあります。
私が探していたものです。面白いことに、デモ・アプリケーションでもまったく同じ「1-800-MY-APPLE」サンプル・テキストを使用していました。 – amrox
@amrox:まあ、私はデモを具体的に作った;-)(実際には、ボーダーレスウィンドウのサンプルプロジェクトがすでにありました。 – NSGod
誰かがこれをOSXサービスにして、テキストをパイプするだけの方がいいのではないでしょうか。このようなアプリ(LargeType 1.0)がありましたが、中止され、ダウンロードが削除されました(!?)。あなたはそれのためにNSGod? – davemyron