Как "Cinch App" это делает? - PullRequest
3 голосов
/ 17 марта 2011

Если вы не знакомы с Cinch, это приложение в Mac App Store, которое позволяет изменить ЛЮБОЕ окно до половины / полного размера экрана, если перетащить окно к краю экрана.Точно так же, как функциональность в Windows 7.

Теперь мой вопрос, как это сделать?Я просмотрел какао-apis в поисках уведомлений / методов делегатов для каждого случая, когда перетаскивается окно (ВСЕ окна, а не только окна, принадлежащие приложению, из которого выполняется код), но не могу его найти.Посмотрел в Core Graphics API ... Quartz Display Services .... но не могу его найти.

Любая помощь будет принята с благодарностью, так как я искал на прошлой неделе .... Спасибо!

Редактировать: Изменить размер окна легко, поскольку это можно сделать с помощью моста applecript ..

Ответы [ 3 ]

7 голосов
/ 17 марта 2011

Являетесь ли вы разработчиком i-Snap или другого клона Mac App Store Cinch?

Я разработчик для Cinch, и хотя я стараюсь поддерживать «менталитет изобилия», который в основном гласит: «Там достаточно для всех», я был расстроен Mac App Store, понижающим барьер для входа в этот рынок, который произвел ряд полуобеспеченных конкурентов.

Я был бы рад увидеть некоторые реальные инновации в работе, которую я проделал, а не только клоны, стремящиеся быстро заработать.

В любом случае, вы хотите взглянуть на API доступа. Это Carbon C API. Это, вероятно, ваш лучший отзыв: http://developer.apple.com/library/mac/#samplecode/UIElementInspector/Introduction/Intro.html%23//apple_ref/doc/uid/DTS10000728

1 голос
/ 17 марта 2011

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

События очень мощные и обеспечивают очень низкий уровень доступа к происходящему,но также может быть очень сложным.Удачи!

0 голосов
/ 17 марта 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...