macOS Какао - Имитация углового захвата - PullRequest
0 голосов
/ 28 июня 2019

// BACKSTORY

Я написал небольшой исполняемый файл Carbon, который перемещал окна моего приложения при нажатии определенной клавиши.

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

// ЦЕЛЬ

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

// КОД

Код написан на Carbon, который, как я знаю, устарел, просто я расширил файл, который нашел в Интернете.

Я использую CGEventTapCreate для захвата ввода и AXUIElementCreateApplication для захвата самого переднего окна.

Я вычисляю размеры окна, которое хочу, затем применяю его, используя код ниже:

temp = AXValueCreate(kAXValueCGSizeType, &windowSize);
AXUIElementSetAttributeValue(frontMostWindow, kAXSizeAttribute, temp);
CFRelease(temp);
...