高度な検索
Developer Connection
Member Login ログイン | ご入会 ADC連絡先

Technical Q&A QA1362
Right- and Control-Drags on Mac OS X

Q: 私の Mac OS X Java アプリケーションは、アップルの標準的なマウスと Control キーの組み合わせを使うか、マウスの右ボタンを使ってドラッグを開始したときに、ドラッグ操作を受け付けません。これはバグでしょうか。

A: これは、Mac OS X の Java の実装に関する問題のように見えますが、実際は、プラットフォームの違いによるもので、デベロッパの方は認識しておく必要があります。Mac OS X では、Control-クリック(または、マウスによっては右クリック)は、コンテキストメニューを表示させるトリガです。これは異常ではなく、マウスが押されたときにトリガが発生するか、マウスが解放されたときにトリガが発生するかというプラットフォームの相違です(後者は、Windows での動作です)。Control キーを押しながらマウスの左ボタンを押すか、またはマウスの右ボタンを押すと、その直後にシステムは、それをドラッグ操作の開始ではなく、コンテキストメニュートリガとして認識します。このため Mac OS X では Ctrl-ドラッグ(または右ドラッグ)は不可能になっています。これはすべての環境において同じです。Cocoa の上位に構築されている Java 1.4 Abstract Window Toolkit は単にこの動作を継承します。

アプリケーションが複数のドラッグ操作をサポートしている場合は、Mac OS X ではまず、Control 以外の他のイベントマスク(Alt/Option、Shift、Meta/Command)と、これらのマスクの組み合わせから使用することをお勧めします。Mac OS X プラットフォームに対しては条件付きでこれを行うか(テクニカルノート 2110 を参照)、またはすべてのプラットフォーム用に意図的に設計上の決定を行うことができます。

Mac OS X とそれ以外のシステムの間に数多く存在する、両立不可能なプラットフォームの相違の 1 つです。ここで取り上げた popupTrigger の問題と、Mac OS X Java デベロッパとして認識しておく必要のあるその他の相違については、「Java 1.4 Development for Mac OS X」の「Native Platform Integration: Making User Interface Decisions」のセクションに説明されています。

ドキュメントの改訂履歴

日付メモ
2004-08-31最初のバージョン

掲載日: 2004-08-31