Принудительный запуск приложения на главном мониторе в определенной позиции

Поскольку это приложение отслеживает пользователя с помощью камеры компьютера, мне нужно, чтобы оно всегда запускалось на главном мониторе, где находится камера (iMac/Macbook), по центру по горизонтали, вверху экрана. Так:

введите здесь описание изображения

Я знаю, как заставить его запускаться сверху и по центру по горизонтали, но моя проблема в том, что если пользователь запускает приложение, щелкнув документ на дополнительном мониторе или дважды щелкнув его из средства поиска на дополнительном мониторе, приложение запустится. приклеен к верхней части дополнительного монитора. Мне нужно, чтобы он подходил к монитору с камерой, то есть к основному экрану.

Есть ли способ сделать это?


person Duck    schedule 03.02.2015    source источник


Ответы (1)


Вы можете создать подкласс NSWindow и переопределить constrainFrameRect:toScreen:. См. https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSWindow_Class/index.html#//apple_ref/occ/instm/NSWindow/constrainFrameRect:toScreen:

person Sheen Vempeny    schedule 04.02.2015
comment
Идея фантастическая, но есть проблема. Что произойдет, если пользователь сделает второй монитор основным экраном? Я думаю он определит второй монитор, без камеры, как основной, да? Я не могу провести тест на этом компьютере, потому что у меня сейчас нет второго монитора. Есть ли способ проверить, является ли возвращенный mainScreen экран компьютера, на котором находится камера? - person Duck; 05.02.2015
comment
Я знаю, что должен быть способ, потому что в моем случае «Об этом Mac» отображаются слова iMac и LGTV, относящиеся к iMac и моему дополнительному дисплею. - person Duck; 05.02.2015