В Carbon вы можете изменить видимость окна с помощью HideWindow (WindowRef) и ShowWindow (WindowRef).
В Какао я знаю, что вы можете вызвать NSWindow orderOut: to hide и orderFront :, orderBack: или orderWindow :lativeTo: чтобы вернуть его на экран, но никто из них не учитывает порядок окна относительно других окон, когда это было последний видимый.
Например, если у меня есть два окна, одно над другим, и затем я вызываю orderOut: в заднем окне, как мне снова показать окно, чтобы оно все еще находилось за передним окном без вызова orderWindow: relativeTo:. 1007 *
Единственное, о чем я могу подумать сейчас, это запомнить идентификатор окна непосредственно над ним, а затем использовать orderWindow :lativeTo: при его повторном отображении, но я не продумал, что происходит, если окно выше перед тем, как заднее стекло снова станет видимым.