Перемещение окна в новое пространство в Управлении полетами

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


person LandonSchropp    schedule 13.08.2011    source источник
comment
Это кажется слишком энергоэффективным для StackOverflow. Это для личного использования или для реального развития?   -  person Jonathan Grynspan    schedule 07.09.2011
comment
План состоял в том, чтобы создать приложение, которое помогло бы мне легче управлять пространством в Lion. Есть несколько вещей, которые я хотел бы добавить к пространствам, например, легко поменять местами два пространства или полноэкранные приложения. Я даже разработал интерфейс с идеей, что Apple предоставит API для этого. Я собирался выпустить это приложение в App Store. К сожалению, это невозможно с использованием предоставленных API. Я сдался после прочтения этого сообщения в блоге: thecocoabots.com/blog/post/377.   -  person LandonSchropp    schedule 07.09.2011
comment
Я тоже ищу ответ. Удалось ли вам это сделать? Можете обновить?   -  person SimonW    schedule 17.01.2013
comment
Пришлось сдаться. Прости. Дай мне знать, если разберёшься.   -  person LandonSchropp    schedule 18.01.2013


Ответы (2)


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

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

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

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

person Gavin Brock    schedule 21.09.2011

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

person garyamorris    schedule 12.09.2011
comment
К сожалению, для Lion это не сработает. Поскольку вы не можете отправить приложение в App Store, если оно не работает с самой последней версией OS X, я боюсь, что это не сработает. Тем не менее, спасибо. - person LandonSchropp; 12.09.2011