0

Cocoa で単純なフォーム デザイナーを構築したいと考えており、マウスを使用してフォーム上でコントロールを移動する必要があります (クリック、ホールド、移動、リリース)。

これらのイベントをインターセプトするには、すべてのコントロール クラスから新しいクラスを継承する必要がありますか? 任意のコントロールに対して一般的に実装する方法はありますか?

4

2 に答える 2

0

コントロールを含むカスタム ビューを記述します。-hitTest:コントロールを無視して代わりに戻るようにオーバーライドしselfます。次に、マウス イベントを受け取ったら、それらが適用されるコントロールを特定し、適切に移動します。

于 2012-05-16T19:54:53.940 に答える
0

1 つの方法は、コントロールが配置されるすべてのスペースを埋める 1 つの大きなカスタム ビューを持つことです。このビューでマウス イベントを実装するために必要なメソッドを実装し、コントロール ビューでヒット検出を行い、それらを移動します。このアプローチでは、NSView の 1 つのカスタム サブクラスのみが必要であり、サブクラス化せずに移動したい任意のビューまたはコントロールを使用できます。

于 2012-05-16T02:02:04.380 に答える