makeKeyWindow vs makeKeyAndVisible

allenlinli picture allenlinli · Aug 12, 2014 · Viewed 10.6k times · Source

What is the difference between makeKeyWindow and makeKeyAndVisible which are two methods of UIWindow ?

When will a UIWindow be a keyWindow but will not be visible?

Answer

rob mayoff picture rob mayoff · Aug 12, 2014

Each UIWindow has a windowLevel. A window is displayed in front of each window with a lower level, and behind each window with a higher level.

But what about two windows with the same level? The window whose level was set more recently is in front, by default. (“When a window enters a new level, it’s ordered in front of all its peers in that level.”) The makeKeyWindow message makes a window key, but that window might be partially or completely hidden behind another window on the same level. The makeKeyAndVisible message makes a window key, and moves it to be in front of any other windows on its level.