Перемещение окна в новое пространство в управлении полетом - PullRequest
9 голосов
/ 13 августа 2011

Я хотел бы написать небольшую утилиту, которая перемещает окно из одного пространства в другое в OS X Lion.Мне все равно, если утилита написана на AppleScript или Objective-C.То, что я не могу понять, дано окно, как я могу переместить его в другое пространство.Я видел много полезной информации в этой ветке, но ничего о том, как на самом деле перемещать окноЕсли у кого-то есть мысли или идеи, я буду признателен, если вы их услышите.Спасибо.

Ответы [ 2 ]

3 голосов
/ 21 сентября 2011

Если вы используете вызовы target-c, то перемещение между пробелами в 10.7 фактически такое же, как в 10.6, за исключением одной проблемы. Идентификаторы пространства были индексами, основанными на 10.6, но основанными на чем-то другом (не совсем GUID) в 10.7.

Если у вас уже есть окно в правильном пространстве, решения в этом вопросе будут работать (я использую его в csshX ). Вы можете получить идентификатор пространства с помощью CGSGetWindowWorkspace, а затем установить его в другом окне, используя CGSMoveWorkspaceWindowList.

Теперь, если у вас нет идентификатора пробела - например, ты просто хочешь переместить окно во 2-е место - тогда я такой же тупой, как и ты. Я ищу связь между идентификатором пробела и номером индекса. (Обновлю этот ответ, если найду)

Наконец, вы упоминаете App Store в комментарии выше - это не будет подходящим, так как вызовы CGS * используют недокументированные частные фреймворки, которые вас отклонят.

0 голосов
/ 12 сентября 2011

Вам нужно будет использовать пользовательскую библиотеку, которую можно найти здесь http://macscripter.net/viewtopic.php?id=23453,, однако я не уверен, какую поддержку она имеет во льве.

...