Возможно ли программно генерировать событие жестов Touchpad? - программирование
Подтвердить что ты не робот

Возможно ли программно генерировать событие жестов Touchpad?

Я работаю над проектом OS X, и я хочу программно генерировать событие жестов Touchpad, такое как NSEventTypeSwipe или NSEventTypeRotate Поэтому я могу повернуть/масштабировать и т.д. В других приложениях.

Я узнал, как генерировать события мыши/клавиатуры, но не сенсорную панель.

Любая идея?

4b9b3361

Ответ 1

Нет публичного API для создания этих событий.

Вы можете найти некоторые работы по синтезу этих событий в этом проекте: calftrail/Touch.

Ответ 2

Ссылка: Cocoa Руководство по обработке событий

В приведенном выше Mac Developer Library в руководстве не указаны какие-либо известные методы программной генерации Жесты сенсорной панели.

До сих пор говорят, что сами жесты тачпада происходят вне ОС:

" аппаратное обеспечение трекпада включает встроенную поддержку для интерпретации общих жестов и для перемещения карт..."

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

Теперь, когда Mac и Windows (т.е. Windows 8) поддерживают сенсорные мониторы на уровне ОС, это вопрос времени, прежде чем программные тачпад и жесты сенсорного экрана могут быть включены в такие сервисы, как ваш проект или управление удаленным рабочим столом, используя соответствующий API когда он станет доступен.

Ответ 3

Я думаю, что события сенсорного жеста не могут быть легко сгенерированы, поскольку нет публичного официального API Apple. Этот NSEventTypeMagnify, NSEventTypeRotate, NSEventTypeSwipe, я думаю, только для целей чтения только при обработке системных событий exitsting. Возможно, Apple по какой-то причине не хочет делать из Magic Mouse волшебный тачпад сторонних разработчиков. Этот запрет проекта rob mayoff не работает, поскольку яблоко, вероятно, что-то изменяет в структуре данных событий. Таким образом, ретрансляция при таком взломе не является футуристической. Но если вы думаете немного больше, вы могли бы достичь того, что события касания будут делать другими способами.

  • увеличение (жест щепотки) → его просто увеличение, уменьшение → большинство программ использует ярлык для этого, например, CMD и +, CMD и -.
  • вращение можно использовать с фотографиями, и в приложении предварительного просмотра есть ярлык, например CMD и L, CMD и R.
  • прокручивание - изменение пробелов (настольных компьютеров) → использование CTRL и стрелки < - или →

Ответ 4

Когда я вижу симулятор xcode, я понимаю, что события касания могут быть сгенерированы программно, и что симулятор xcode использует эти подпрограммы и функции для переноса касаний курсора и перевода их на сенсорные события, однако на основании того, что сказал @robMayoff, кажется, что Apple не сделала эту библиотеку открытой для публики. Эмуляция такого же поведения и создание функций с нуля для этого было бы немного сложной задачей.

Это ссылка на класс NSTouch: http://developer.apple.com/library/mac/#documentation/AppKit/Reference/NSTouch_Class/Reference/Reference.html#//apple_ref/occ/cl/NSTouch