私は現在、Windows から OSX にアプリケーション (より正確には VST プラグイン) を移植しています。OSXプログラミングは初めてですが、HICocoaCreateViewを使用して(ホストから取得した)Carbonウィンドウに追加されたCocoa NSViewを使用しています。
Anywhoo ...このビュー内でmouseMovedおよびmouseDraggedイベントを取得したいのですが、ドラッグすると、マウスがNSView(および親ウィンドウ)を離れてもこれらのイベントを取得したいのですが、作成できないようですこれが起こります。
Windows では、しばらくの間すべてのマウス イベントを取得するために、mouseDown で SetCapture を実行します。私が Cocoa で見つけた最も近いものは「addGlobalMonitorForEventsMatchingMask」ですが、これは 10.6+ のみであり、これがそれ以前にはできなかったものであるとは信じがたいです。(結局のところ、これはスクロールバーなどのドラッグ可能なコンポーネントによく使用されるものです。)
これは私を狂わせています!
アップデート:
CGEventTapCreate と呼ばれるものもあり、乏しいドキュメントからわかる限り、addGlobalMonitor に似ていますが、Carbon にあります。Carbon と Cocoa がどのように相互に関係しているか、何がどこで機能しているかについては、正確にはわかりません。ココアがメインだけど使える?(ホストから取得したウィンドウは、Cocoa と Carbon の両方である可能性があります。実際にはすべて混乱しています。)