【问题标题】:NSWindow loses miniaturize button on LionNSWindow 在 Lion 上丢失了小型化按钮
【发布时间】:2011-10-25 11:05:59
【问题描述】:

我在 OSX Lion 上进入/退出全屏时遇到了这个问题。我尝试重新应用样式掩码但没有成功:

NSUInteger styleMask = NSResizableWindowMask | NSClosableWindowMask |  NSMiniaturizableWindowMask | NSTitledWindowMask;
styleMask |= NSTexturedBackgroundWindowMask;

window = [[NSWindow alloc] initWithContentRect:windowFrame 
                                      styleMask: styleMask
                                        backing:NSBackingStoreBuffered 
                                          defer:NO];

和全屏通知

(void)didExitFull:(NSNotification *)notification {
   NSUInteger styleMask=[window styleMask];
   [window setStyleMask:styleMask|NSMiniaturizableWindowMask];

}

小型化按钮似乎没有再次启用。 我还在 MacOSX 10.6 here 上发现了这个 UI 可用性问题

【问题讨论】:

  • 我走得更远,意识到由于某种原因,小型化按钮只是处于禁用状态。所以添加code[[window standardWindowButton:NSWindowMiniaturizeButton] setEnabled:YES]; code 将再次激活按钮。问题在于,只有当窗口更新自身获得焦点从后到前时才会发生这种情况。

标签: objective-c osx-lion nswindow minimize titlebar


【解决方案1】:

请覆盖以下函数

- (NSApplicationPresentationOptions) window:(NSWindow *)window willUseFullScreenPresentationOptions:(NSApplicationPresentationOptions)proposedOptions
{
    return (proposedOptions| NSApplicationPresentationAutoHideToolbar);
}

并且不要在 exitFullscreen 之后设置 styleMask。让系统来做吧。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-07
    • 2011-05-13
    • 2021-05-02
    • 1970-01-01
    • 2014-04-25
    • 1970-01-01
    • 2019-01-26
    • 1970-01-01
    相关资源
    最近更新 更多