- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我的应用程序有一个选项,允许用户在 NSWindow
10.10 API 中可用的标准“全尺寸”窗口标题栏/工具栏和“紧凑型”标题栏/工具栏之间进行选择。具体来说,我使用 -titleVisibility
方法根据用户的偏好设置 NSWindowTitleVisible
或 NSWindowTitleHidden
。如果用户选中“Compact Titlebar”复选框,NSWindowTitleHidden
将应用于窗口,否则,窗口将使用默认样式。当复选框值更改时,该值存储在应用程序的用户默认值中,并更新/重绘窗口。
在重新启动应用程序之前一切正常。每次应用程序启动时,窗口都会根据从默认窗口样式 (NSWindowTitleVisible
) 切换到新样式 (NSWindowTitleHidden
) 所节省的空间大小而增长。因此,重新启动应用程序 5 到 6 次将使窗口与菜单栏和停靠栏齐平,具体取决于最初选中复选框时窗口的大小。
换句话说,设置属性时,窗口的框架似乎没有在 NSUserDefaults
中更新。是否有解决方法,或者我只是忽略了什么?任何建议都会很有帮助。
谢谢!
最佳答案
在 https://openradar.appspot.com/18510665 上发布了一个更好的(且已确认有效的)解决方案通过 pointum:
The problem is that window size is restored by the system using
-[NSWindow setFrameUsingName:]
beforetitleVisibility
is set. Solution:
- Remove "Autosave Name" value in Interface Builder.
- Set it in code right after setting
titleVisibility
using-[NSWindow setFrameAutosaveName:]
.
关于objective-c - 带有 NSWindowTitleVisibilityNone 的 NSWindow 将不正确的框架保存为用户默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26880423/
我的应用程序有一个选项,允许用户在 NSWindow 10.10 API 中可用的标准“全尺寸”窗口标题栏/工具栏和“紧凑型”标题栏/工具栏之间进行选择。具体来说,我使用 -titleVisibili
我是一名优秀的程序员,十分优秀!