【发布时间】:2015-01-08 22:02:45
【问题描述】:
我的应用程序有一个选项,允许用户在标准“全尺寸”窗口标题栏/工具栏和NSWindow 10.10 API 中提供的“紧凑”标题栏/工具栏之间进行选择。具体来说,我使用-titleVisibility 方法来设置NSWindowTitleVisible 或NSWindowTitleHidden,具体取决于用户的偏好。如果用户选中“紧凑标题栏”复选框,NSWindowTitleHidden 将应用于窗口,否则,窗口使用默认样式。当复选框值发生变化时,该值存储在应用程序的用户默认值中,并更新/重绘窗口。
在重新启动应用程序之前一切正常。每次应用程序启动时,窗口都会根据从默认窗口样式 (NSWindowTitleVisible) 切换到新样式 (NSWindowTitleHidden) 所节省的空间来增长。因此,重新启动应用程序 5 到 6 次将使窗口与菜单栏和停靠栏齐平,具体取决于最初选中复选框时窗口的大小。
换句话说,在设置属性时,NSUserDefaults 中似乎没有更新窗口的框架。有没有解决方法,或者我只是忽略了一些东西?任何建议都会很有帮助。
谢谢!
【问题讨论】:
-
他们还没有解决这个问题真是太疯狂了,我遇到了同样的问题,在我的窗口控制器的
awakeFromNib方法中设置了[self.window setTitleVisibility:NSWindowTitleHidden];。也许我们做错了什么…… -
OSX 10.10 的日历应用程序具有这种特殊外观并且没有问题。
标签: objective-c frame nsuserdefaults nswindow osx-yosemite