0

フルスクリーンオーバーレイを描画してから、その上にラベル+テキストフィールドを描画する方法はありますか?

私がすでにしたこと:

ユーザーがボタンをクリックすると、画面がオーバーレイで覆われる必要があります。

私が書いたAppDelegate.mボタンアクションメソッドで:

NSRect frame = [[NSScreen mainScreen] frame];
self.mainWindow  = [[NSWindow alloc] initWithContentRect:frame styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO];
[self.mainWindow setAcceptsMouseMovedEvents:YES];
[self.mainWindow setOpaque:NO];
[self.mainWindow setLevel:CGShieldingWindowLevel()];
[self.mainWindow setBackgroundColor:[NSColor colorWithDeviceRed:0.0 green:0.0 blue:0.0 alpha:0.7]];
[self.mainWindow orderFrontRegardless];
NSApplicationPresentationOptions options = NSApplicationPresentationDisableProcessSwitching + NSApplicationPresentationHideDock + NSApplicationPresentationDisableForceQuit + NSApplicationPresentationDisableSessionTermination + NSApplicationPresentationDisableHideApplication;
[NSApp setPresentationOptions:options];

うまく機能していますが、アニメーションがなく、オブジェクト(ラベル/テキストフィールド)を描画する方法が本当にわかりませんか?

どちらか、このメソッドを別のクラスに移動する必要がありますか?

4

1 に答える 1

1

アニメーションに関しては、多くの方法があります。

mainWindow.alphaValue = 0;
[mainWindow orderFrontRegardless];
[[mainWindow animator] setAlphaValue:1.0];

ラベルについては、サブビューとして、巨大なNSFontを含むNSTextFieldを追加するだけです。

NSTextField *label = ... 
[[mainWindow contentView] addSubview:label];

psラベルと同じように、他のビューを追加できます:)

于 2012-11-11T20:42:03.530 に答える