Cuando maximiza una ventana en Macos, la ventana llena la pantalla.

Lo que quiero poder hacer es restaurar la posición y el tamaño de las ventanas, como cuando presionas el botón de maximizar nuevamente para restaurar la posición original. ¿Cómo puedes hacer esto?

Necesito esto para guardar la posición de la ventana al salir.

0
ManUser123 25 oct. 2020 a las 21:27

1 respuesta

La mejor respuesta

Hay un método preparado para esta tarea en NSWindow.

Puede pedirle a su ViewController su NSWindow y establecer un AutosaveName para su marco como ...

[self.view.window setFrameAutosaveName:@"VerySpecialWindowAutoSaveName"];

Que terminará en NSUserDefaults de su aplicación como una entrada como ...

"NSWindow Frame VerySpecialWindowAutoSaveName" = "300 100 1200 1005 0 0 2560 1289"

Pero el mejor lugar para este código es ... no existe el mejor lugar porque depende del enfoque de sus aplicaciones.

Todo el proceso puede ser un desafío cuando tiene varias ventanas en una aplicación basada en documentos, pero como puede configurar el AutosaveName por ventana de documentos, puede recuperar el marco si es necesario, al menos para el último documento. Debe mencionarse que puede configurar el AutosaveName en InterfaceBuilder y también en Code, así que esté atento, siguen el mismo nombre si usa ambos IB & code para una y la misma ventana.

Y un ejemplo en swift puede encontrar en esta esencia

0
Ol Sen 26 oct. 2020 a las 01:02