XcodeからOSXアプリを起動すると、正常に表示されます。
ウィンドウを閉じると(予想どおり)ウィンドウが消え、アプリはドックでアクティブなまま表示されます。
素晴らしい、そうあるべきです。しかし、ドックをクリックしてウィンドウをアクティブにすると、ウィンドウが表示されません。
何か案は?
XcodeからOSXアプリを起動すると、正常に表示されます。
ウィンドウを閉じると(予想どおり)ウィンドウが消え、アプリはドックでアクティブなまま表示されます。
素晴らしい、そうあるべきです。しかし、ドックをクリックしてウィンドウをアクティブにすると、ウィンドウが表示されません。
何か案は?
質問には多くの情報はありませんが、アプリはシングルウィンドウアプリ(つまり、NSDocument
ベースではない)であると仮定します。
このシナリオの典型的な状況は、ユーザーがウィンドウを閉じ、アプリケーションがDockのアイコンで想定どおりに実行され続けることです。
そのような状況では、ユーザーは通常、Dockのアイコンをクリックしてアプリがアクティブ化されたときにウィンドウが再表示されることを望んでいます。
applicationShouldHandleReopen:hasVisibleWindows:
これを取得するには、次のように実装できます。
- (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)visibleWindows
{
if ( visibleWindows ) {
[self.window orderFront:self];
}
else {
[self.window makeKeyAndOrderFront:self];
}
return YES;
}
迅速な場合:
func applicationShouldHandleReopen(sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool {
if let window = sender.windows.first {
if flag {
window.orderFront(nil)
} else {
window.makeKeyAndOrderFront(nil)
}
}
return true
}