NSButtonをドラッグ可能にする方法はありますか?最終的に構築されたアプリケーションのように、ユーザーはNSButtonをドラッグできます。ドラッグ可能なNSButton
私は、「ダッシュボード」スタイルのように、ドラッグ可能なもののように何かしようとしています。現時点では、NSButtonをそのまま使用していますが、ドラッグできればいいと思います。
NSButtonをドラッグ可能にする方法はありますか?最終的に構築されたアプリケーションのように、ユーザーはNSButtonをドラッグできます。ドラッグ可能なNSButton
私は、「ダッシュボード」スタイルのように、ドラッグ可能なもののように何かしようとしています。現時点では、NSButtonをそのまま使用していますが、ドラッグできればいいと思います。
UIControlクラス、UITouch、およびEvent Handlingガイドの「continueTrackingWithTouch:withEvent:」を参照してください。基本的な考え方は、ボタンの中心を更新するためにイベントからの位置データを使用して、TouchDragInsideイベントのハンドラを作成することです。
あなたがiOSで作業していた場合は、これは便利なアドバイスになります。
NSControlとNSViewのいくつかを一見すると、私はそれができると確信しています。私はすぐに答えを出すことはできません。 :(
基本的には、アイデアは、マウスが移動するたびに、あなたがチェックし、同じ相対量によってボタンの位置を更新する、のmouseDownイベントをキャッチし、マウスの位置に注意を払って開始することです。
必要であればもっと後で。
私は標準Drag-and-drop infrastructureで始まると思います。あなたはすべての機能を使用していない場合でも、それは一般的に良い出発点だとあなたのためのトリッキーな例多くを処理します。
へ深さを追加:
あなたはNSButtonをサブクラス化し、オーバライドする必要があります:
-(void)mouseDragged:(NSEvent *)theEvent{
//With:
NSRect gframe = self.frame;
gframe.origin.x = theEvent.locationInWindow.x;
[self setFrame:gframe];
}
NSButtonは通常、すべてのマウスイベントを食べます。したがって、NSButtonをサブクラス化してドラッグ操作だけでなく、クリック処理をオーバーライドする必要があります。
これを迅速に行うにはどうすればいいですか?これを行うにはどうすればいいですか?ViewController.swiftに@IBAction override func mouseDown(theEvent:NSEvent){...}私がクリックしたNSButtonコントロールの場合を除いて、mouseDownイベント? –
フランク、ありがとう!それは完璧な答えです! –
私は「NSButton」ではなく「UIButton」と言っています。 –
ああ、私はiPhoneの土地にこだわっているので、私はちょうどそれらを追加しました。ホールドオン... –
私はUIButtonも読んでいます。 –