如何在窗口打开时关闭窗口并在关闭窗口时将窗口淡出?
这应该可以在Objective C中完成。这必须是AppleScript-Objective-C项目的一部分。我正在使用链接到窗口的属性,并在其上执行makeKeyAndOrderFront ...
任何帮助将不胜感激!
答案 0 :(得分:7)
子类(或添加类别)NSWindow并添加:
- (void)fadeInAndMakeKeyAndOrderFront:(BOOL)orderFront {
[self setAlphaValue:0.0];
if (orderFront) {
[self makeKeyAndOrderFront:nil];
}
[[self animator] setAlphaValue:1.0];
}
- (void)fadeOutAndOrderOut:(BOOL)orderOut {
if (orderOut) {
NSTimeInterval delay = [[NSAnimationContext currentContext] duration] + 0.1;
[self performSelector:@selector(orderOut:) withObject:nil afterDelay:delay];
}
[[self animator] setAlphaValue:0.0];
}
这允许您以编程方式淡入/淡出窗口。
要在按下关闭按钮时让窗口淡出,请将其添加到窗口的委托中:
- (BOOL)windowShouldClose:(id)sender {
[window fadeOutAndOrderOut:YES];
return NO;
}
要显示一个淡入调用[window fadeInAndMakeKeyAndOrderFront:YES];
的窗口,而不是您要调用的窗口。