2013-03-04 5 views
3

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

Как мне это сделать?

+1

Ваш вопрос немного расплывчатый. Вы что-то пробовали? В какой части этого вы больше всего не уверены? Получение других окон? Алгоритм определения прямоугольника с наименьшим перекрытием других прямоугольников? Написание кода какао для фактического размещения NSWindow? –

+0

Во-первых, я хотел бы знать, есть ли какой-то простой встроенный API для этого. В противном случае, схема алгоритма. – smokris

ответ

1

У Apple есть пример приложения Son of Grab, в котором показано, как использовать все текущие окна.

CFArrayRef windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly, kCGNullWindowID); предоставит вам текущие окна. Вы можете опросить значение kCGWindowBounds, чтобы получить границы возвращаемых окон.

+0

Спасибо. Любые мысли о алгоритме с наименьшим перекрытием? – smokris