Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> MacOSアプリ開発(Swift、Objective-C) -> ウインドウを再表示させるメニューを追加する

ウインドウを再表示させるメニューを追加する


Design Preamble

The user interface of your app is not consistent with the macOS Human Interface Guidelines.

Specifically, we found that when the user closes the main application window there is no menu item to re-open it.

・・・な対策の続き。

やはり、Dockアイコンのクリックでウインドウを再表示させるだけでは心もとないらしいので、素直にメニューに、ウインドウを再表示させる機能を追加することに。

まず、AppDelegateに下記コードを追加。

@IBAction func showAllWindow(_ sender: NSMenuItem){
for window in NSApplication.shared().windows{
window.makeKeyAndOrderFront(self);
}
}

あとは、ストーリーボードで、NSMenuItemで適当なメニューを追加して、上記のActionと関連付けさせればOK。

・・・こんなのでRejectされるなら、デフォルトで対応してくれてれば良いのに。(^^;

ちなみに、Objective-Cの場合は、
AppDelegate.hに、

-(IBAction)showAllWindow:(NSMenuItem *)sender;

を追加し、
AppDelegate.mに、下記を追加。

- (IBAction) showAllWindow:(NSMenuItem *)sender{
for(NSWindow *_window in [[NSApplication sharedApplication] windows]){
[_window makeKeyAndOrderFront:self];
}
}

特定のウインドウのみ表示したい場合は、
下記のような感じでOK。

- (IBAction) showAllWindow:(NSMenuItem *)sender{
[window makeKeyAndOrderFront:self];
}

最初に記事を書いた日:2017/08/27

この記事をシェアする

このエントリーをはてなブックマークに追加

関連記事

Meteoric Streamについて

管理人

Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> MacOSアプリ開発(Swift、Objective-C) -> ウインドウを再表示させるメニューを追加する