objective-c - 获取窗口恢复边界
问题描述
在 Macos 中最大化窗口时,窗口会填满屏幕。
我想要做的是让窗口恢复位置和大小,就像您再次按下最大化按钮以恢复原始位置一样。你怎么能做到这一点?
我需要这个来保存退出时的窗口位置。
解决方案
中有一个为此任务准备的方法NSWindow
。
你可以向你的 ViewController 询问它的 NSWindow 并为它的 Frame 设置一个 AutosaveName 像..
[self.view.window setFrameAutosaveName:@"VerySpecialWindowAutoSaveName"];
这将最终在NSUserDefaults
您的应用程序中作为条目...
"NSWindow Frame VerySpecialWindowAutoSaveName" = "300 100 1200 1005 0 0 2560 1289"
但是这段代码的最佳位置是......没有最佳位置,因为它取决于您的应用程序方法。
当您在基于文档的应用程序中有多个窗口时,整个过程可能具有挑战性,但是由于您可以为每个文档窗口设置 AutosaveName,因此您可以在需要时恢复框架,至少对于最后一个文档。应该提到的是,您也可以在 InterfaceBuilder 和 Code 中设置 AutosaveName - 因此,如果您将 IB 和代码用于同一个窗口,请注意它们遵循相同的名称。
推荐阅读
- php - 单击时如何href类别。(wordpress)
- r - R初学者:MSE返回NaN
- c - 无法运行我的代码,我不知道为什么它不起作用
- python - Python adding day number with average
- python - 在迭代期间在同一行上打印dict的值和下一个值
- c++ - 与 C 代码相比,为什么 C++ 代码不需要“#define _POSIX_C_SOURCE 200809L”?
- javascript - 鼠标事件的触发点击与切换
- codenameone - Android访问位置使登录屏幕放大效果
- c++ - 将 stl 字符串缩小到小于 15 个字符的容量
- php - 如何从原生 PHP 读取 Codeigniter 3 会话值?