2015-11-14 5 views
0

В приложении для Mac, как я могу открыть NSWindow по определенному NSScreen (скажем, на втором экране)?Какао-шоу NSWindow на конкретном экране

Это, как я показываю в окно, но он показывает только на главном экране

self.windowController = NSStoryboard(name: "Main", bundle: nil).instantiateControllerWithIdentifier("mainWindow") as! NSWindowController 
let window = self.windowController.window! 
window.makeKeyAndOrderFront(self) 

Ответы в обоих Swift и OC приветствуются.

+0

Я уверен, что ОС любит рассматривать несколько экранов как «один большой экран», чтобы вы могли контролировать это с помощью позиции. См. Здесь http://stackoverflow.com/questions/16658582/how-to-move-nswindow-to-a-particular-screen –

+0

@JustinMeiners Спасибо! Я это попробую. –

ответ

0

Используйте экраны функций класса, чтобы получить массив всех экранов, которые у вас есть. Из массива выберите экран, на котором вы хотите, чтобы ваше окно отображалось. Используйте координаты в этом окне (которые относятся к главному окну), чтобы создать прямоугольник для вашего нового окна;

[self.window setFrame:CGRectMake(pos.x, pos.y, [mywindow frame].size.width  
     , [mywindow frame].size.height) display:YES]; 

где pos вычисляется из массива экранов и вашего selectoin.

Смежные вопросы