#author("2018-05-09T15:28:45+09:00","default:wikiwriter","wikiwriter")
#author("2018-05-10T20:13:30+09:00","default:wikiwriter","wikiwriter")
&tag(Cocoa/ドラッグアンドドロップ);
*目次 [#g6ead413]
#contents
*関連ページ [#c71dfd0f]
*参考情報 [#i9d4339e]
-[[Drag and Drop Tutorial for macOS]]


*Tips [#j92ebe5d]
**新しいスタイル [#p77a4026]
-[[Drag and Drop in Swift - Issues with Registering for Dragged Types? - Stack Overflow:https://stackoverflow.com/questions/24343216/drag-and-drop-in-swift-issues-with-registering-for-dragged-types]]にある情報によると、registerForDraggedTypesに文字列で指定するタイプのコードは古く、registerですべてのコードを受け入れ、canReadObjectなどで制限するのが新しい方法らしい。
#pre{{
self.register(forDraggedTypes: [kUTTypeURL as String])

override func draggingEntered(_ sender: NSDraggingInfo) -> NSDragOperation {
        let pasteboard = sender.draggingPasteboard()
        let filteringOptions = [NSPasteboardURLReadingContentsConformToTypesKey:NSImage.imageTypes()]
                if pasteboard.canReadObject(forClasses: [NSURL.self], options: filteringOptions) {
                        return NSDragOperation.copy
        }      
        return NSDragOperation() //alternatively: []
}
}}


*NSImageView [#p55896aa]

**Image WellとImage Viewの違いって [#vbfada4f]
-Interface BuilderではImage WellとImage Viewが追加できる。
-Image Wellはドラッグ&ドロップをサポートするとあるが、どちらもEditableにチェックを入れれば画像ドロップが可能。
-Image WellとImage Viewの違いは外見だけ?

**ドロップ可能にする [#ed64c5c6]
-Attributes InspectorでEditableにチェックを入れる
-ドロップ時の画像サイズはScalingで調節。
--Proportionally Down: 縦横比を保ったまま縮小
--Axes Independently: 縦横比を無視して拡大・縮小
--None: 拡大縮小なし
--Proportionally Up ow Down: 縦横比を保ったまま拡大 or 縮小

**フォーカスリングを表示しない [#j7f38801]
-Editableにチェックを入れるとフォーカスの存在するビューに青いフォーカスリングが表示されるようになる。
-これを変更するにはAttributes InspectorのFocus RingをNoneに変更する。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS