2016-05-12 30 views
0

我有一个应用程序,我尝试在多屏幕上。我有两个屏幕,当两个屏幕都是enterFullscreen时,我想禁用第二个屏幕上的焦点,我想强制将焦点放在主屏幕上。 我试过解决方案,我发现here但没有改变任何东西。禁用焦点在第二屏幕中的objective-c

下面的代码显示了如何enterFullScreen我的主窗口和我的第二个窗口

[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]; 

     } 

当两个画面是在全屏模式下,当我第二个窗口,我有重点的第二个窗口上单击(正常事件)但我想禁用它,并强制将焦点放在我的主窗口上。我试图禁用第二个屏幕上的鼠标事件,但..不工作。 如果有人能帮助我!在此先感谢

+0

你可以发布一些代码并打印你的屏幕?我不确定你想要什么。所以它会更容易帮助你。 –

+0

完成了,希望现在更清楚.. – miDark

回答

0

我不知道这是否是您的最佳答案,但您可以遍历内容视图的所有subviews,并在所有这些视图上调用setEnabled:。你可以在这里看到更好更完整的答案:https://stackoverflow.com/a/16336624/2923506

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

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

} 
+0

ty!我会先理解它,然后尝试它! – miDark