2012-11-11 28 views
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]; 

它的工作不错,但没有任何动画&我真的不知道如何绘制对象(标签/文本框)在它?

要么我应该将此方法移动到另一个类中吗?

回答

1

为动画,有很多种方法..标识做

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

为标签,只需添加的NSTextField一个巨大的NSFont,作为一个子视图

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

附:就像与标签一样,您可以添加任何其他视图:)