16

私は OS X プロジェクトに取り組んでおり、プログラムで NSEventTypeSwipe や NSEventTypeRotate などのタッチパッド ジェスチャ イベントを生成したいので、他のアプリケーションで回転/ズームなどを行うことができます。

マウス/キーボードイベントを生成する方法を見つけましたが、タッチパッドは生成しませんでした。

何か案が?

4

4 に答える 4

5

これらのイベントを生成するためのパブリック API はありません。

このプロジェクトcalftrail/Touchで、これらのイベントを合成する作業を見つけることができます。

于 2012-12-25T08:16:57.363 に答える
3

参照: Cocoa イベント処理ガイド

上記のMac Developer Libraryガイドには、プログラムでTouchpad Gesturesを生成する既知の方法は記載されていません。

タッチパッド ジェスチャ自体は OS の外部で発生するとまで言えます。

トラックパッドのハードウェアには、一般的なジェスチャーの解釈と動きのマッピングのサポートが組み込まれています...」

このガイドでは、アプリがその唯一の入力メカニズムに依存してはならないことも明示的に述べています。そのため、キーボードとマウスのサポートを含めることをお勧めします。

Mac と Windows (つまり、Windows 8) が OS レベルでタッチスクリーン モニターをサポートするようになったので、適切な API を使用してプロジェクトやリモート デスクトップ コントロールなどのサービスにプログラムでタッチパッドとタッチスクリーン ジェスチャを組み込むことができるようになるのは時間の問題です。利用可能。

于 2012-12-25T05:16:32.600 に答える
0

公開されている公式の Apple API がないため、タッチ ジェスチャ イベントは簡単に生成できないと思います。この NSEventTypeMagnify、NSEventTypeRotate、NSEventTypeSwipe は、既存のシステム イベントを処理する際の読み取り専用のみを目的としていると思います。Apple は何らかの理由で Magic Mouse をサードパーティの開発者による魔法のタッチパッドにしたくないのかもしれません。Apple がおそらくイベント データの構造を変更するため、この Project rob mayoff は正しく機能していません。したがって、そのようなハッキングを中継することは未来的ではありません。しかし、もう少し考えれば、他の方法でタッチ イベントが行うことを実現できます。

  1. 拡大(ピンチジェスチャー)->ズームイン、ズームアウト->ほとんどのプログラムは、CMDと+、CMDと-のようなショートカットを使用しています。
  2. 回転は写真で使用でき、プレビューアプリには CMD と L、CMD と R のようなショートカットがあります。
  3. スワイプ - スペースの変更 (デスクトップ) -> CTRL と矢印を使用 <- または ->
于 2016-08-27T10:07:57.663 に答える
-1

xcodeシミュレーターを見ると、タッチイベントをプログラムで生成できること、およびxcodeシミュレーターがそれらのルーチンと関数を使用してカーソルタッチを転送し、それらをタッチイベントに変換していることを理解していますが、@ robMayoffの発言に基づいて、 Apple は、そのライブラリを公開しませんでした。同じ動作をエミュレートして、そのための関数をゼロから作成するのは少し難しいでしょう。

これは NSTouch クラスのリファレンスです: http://developer.apple.com/library/mac/#documentation/AppKit/Reference/NSTouch_Class/Reference/Reference.html#//apple_ref/occ/cl/NSTouch

于 2012-12-31T22:50:57.103 に答える