2016-05-19 10 views
0

私は画像をドラッグできるNSTabViewがあるOS X用のSwiftを使ってアプリケーションを構築しています。中にドラッグされた各画像について、それが新しいタブを追加し、NSTabViewItemは、私は、ドラッグ操作を処理NSTabViewクラスのサブクラスを作成して。OS X:スーパービューにビューを介してマウスドラッグイベントを渡す方法

引きずられたNSImageを保持しているNSImageViewが含まれています。

ドラッグされた画像を取得して新しいタブを正しく作成するコードがあります。ただし、NSImageView(ドラッグしてから)を表示すると、新しい画像をドラッグすると、NSImageViewがドラッグ情報をブロックしていると表示され、ドラッグ操作を受け取りません。したがって、以前にドラッグされた画像を示すNSImageViewのすぐ上に、新しい画像をドラッグすることができます。

NSImageViewをマウスドラッグイベントに対して透過的にして、それらが下のNSTabViewに通過するようにする方法はありますか?

NSImageView.enabledをfalseに設定しようとしましたが、NSImageViewhitTestも上書きしようとしました。しかし、これらのどれも働いていないようです。

+0

'NSImageView'の' editable'プロパティが 'false'に設定されていますか? 'editable':"ユーザーが新しい画像を画像ビューにドラッグできるかどうかを示すブール値。 " https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSImageView_Class/#//apple_ref/occ/instp/NSImageView/editable動作するかどうかわからない... – NSGod

+0

@NSGod 'NSImageView'はプログラムによって作成されます。私は作成後に 'editable'の値を表示し、デフォルトで' false'に設定されているようです。 –

答えて

0

あなたがペーストボード上の画像をアップ食べてからそれらを停止するために作成NSImageViewNSView

func unregisterDraggedTypes()

上の機能を使用することができます。

これは、下にあるサブクラスがドラッグイベントを受け取ることができるはずです。

また、それが機能しない場合は、NSTabviewの上にドラッグイベントを受け取るサブクラスを配置し、hitTestを上書きして、クリックが下のビューに到達するようにします。

override func hitTest(aPoint: NSPoint) -> NSView? { 
    return nil 
    } 
関連する問題