在 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];
}
我有一个应用程序,我在多屏幕上试用它。我有两个屏幕,我想在两个屏幕都进入全屏时禁用第二个屏幕上的焦点,我想强制将焦点放在主屏幕上。 我尝试了找到 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];
}