Search code examples
iosobjective-cuiwindow

makeKeyWindow vs makeKeyAndVisible


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?


Solution

  • 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. (The documentation used to say “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.