2016-05-12 71 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