gpt4 book ai didi

objective-c - NSWindow setFrame 之后失去 NSView 焦点

转载 作者:行者123 更新时间:2023-12-03 17:25:18 26 4
gpt4 key购买 nike

我通过设置它的框架将我的 NSWindow 从正常模式切换到全屏(我知道有一种方法可以让 View 全屏显示,但它需要这样)

在我的 NSOpenGLView 中,我正在跟踪 onMouseMove 事件...

切换到全屏(或返回)后,我必须单击 View (窗口内)以接收 mouseMove 事件。看起来它失去了焦点,但我不明白为什么(我只是使用 setFrame)以及如何使其再次聚焦,而不需要用户单击窗口。

我的 NSOpenGLView (NSView) 中的代码:

    if (!fullscreenOn) {
//!switch to fullscreen mode
NSRect mainDisplayRect = [[[self window] screen] frame];
[[self window] setStyleMask:NSBorderlessWindowMask];

[[self window] setFrame:[[self window] frameRectForContentRect:mainDisplayRect] display:YES animate:NO];

[[NSApplication sharedApplication] setPresentationOptions: NSApplicationPresentationAutoHideMenuBar | NSApplicationPresentationAutoHideDock];

fullscreenOn = YES;

} else {

[[self window] setStyleMask:NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSTexturedBackgroundWindowMask];

[[NSApplication sharedApplication] setPresentationOptions: NSApplicationPresentationDefault];

... some code for the right size ...
[[self window] setFrame:frame display: YES animate: YES];

fullscreenOn = NO;
}

最佳答案

问题出在设置 [[self window] setStyleMask:NSBorderlessWindowMask];这导致了这种行为...默认情况下使窗口无边框解决了问题

关于objective-c - NSWindow setFrame 之后失去 NSView 焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7104616/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com