在 objective-c 中禁用第二个屏幕上的焦点

Disable focus on second screen in objective-c

我有一个应用程序,我在多屏幕上试用它。我有两个屏幕,我想在两个屏幕都进入全屏时禁用第二个屏幕上的焦点,我想强制将焦点放在主屏幕上。 我尝试了找到 here 的解决方案,但没有任何改变。

以下代码显示了我如何为我的主 Window 和第二个 Window

进入全屏
[self.window.contentView enterFullScreenMode:[[NSScreen screens] firstObject] withOptions:nil];
        [windowArray insertObject:self.window atIndex:0];

        NSRect screenRect;
        NSArray *screenArray = [NSScreen screens];
        for (NSInteger index = 1; index < [screenArray count]; index++)

        {

            NSScreen *screen = [screenArray objectAtIndex: index];

            screenRect = CGRectMake(0, 0, screen.frame.size.width , screen.frame.size.height);
            NSWindow *window = [[NSWindow alloc] initWithContentRect:screenRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO screen:screen];

            [window.contentView setWantsLayer:YES];
            window.contentView.layer.backgroundColor = [NSColor blackColor].CGColor;

            [window.contentView enterFullScreenMode:[[NSScreen screens] objectAtIndex:index] withOptions:nil];
            [windowArray addObject:window];

        }

当两个屏幕都处于全屏模式时,当我单击第二个 window 时,我将焦点放在第二个 window (正常事件)上,但我想禁用它并强制放置重点放在我的主Window上。我试图在第二个屏幕上禁用鼠标事件,但.. 不工作。 如果有人可以帮助我!提前致谢

我不知道这是否是最适合您的答案,但您可以遍历内容视图的所有 subviews,然后对所有这些调用 setEnabled:。您可以在这里看到更好更完整的答案:

for (NSView *object in [self.window.contentView subviews]) {

     // Check it out the object
         // set enable to NO [(id)object setEnabled:NO];

}