【发布时间】:2010-10-23 02:20:27
【问题描述】:
当应用程序失去焦点时,我一直试图隐藏我的应用程序主窗口。
测试后
- (void)applicationDidResignActive:(NSNotification *)aNotification
{
[window orderOut:self];
_isShown = NO;
}
然而,这似乎只工作一次,在我用
把我的窗口带回来之后[window makeKeyAndOrderFront:self];
[window orderFrontRegardless];
它不再起作用了,我做错了什么?
【问题讨论】:
-
_isShown在其他地方是否有意义?您是否在某处更改应用程序委托?究竟什么“不再有效”?应用程序是否成功激活?窗口是否根本不会第二次隐藏?applicationDidResignActive:方法是否不再被调用? -
_iSShown 是我维护的一个内部属性,它不会在其他任何地方调用 b/c 它只能工作一次。该窗口不会第二次隐藏,并且再也不会调用 applicationDidResignActive。
-
_isShown是一个变量;因为它的值不是指向函数的指针,所以它不能被调用。你如何在其他地方使用它的价值?您还没有回答我的其他两个问题:您是否正在更改应用程序委托?应用激活成功了吗? -
彼得,我的意思是 _isShown 的唯一位置是在我的头文件中。我根本没有更改应用程序委托,是的,它已成功激活。我应用了 applicationDidBecomeActive 并发送了一个 NSLog 以确保是这种情况。需要注意的一点是,第一次隐藏窗口时它可以工作,但第二次方法永远不会被调用。
标签: objective-c cocoa xcode