OS X拖拉檔案獲取檔案路徑

2021-07-16 01:57:28 字數 2121 閱讀 1129

2rd,august,2016

cocoa提供了在開發的應用與其它應用間實現拖拽的相關api,分別在nsdragging.h,nsdraggingitem.h,nsdraggingsession.h中。

宣告了nsdraggingsource,nsdraggingdestination,nsdragginginfo協議

)sender;

- (nsdragoperation)draggingupdated:(id

)sender; /* if

the destination responded to draggingentered: but

notto draggingupdated: the

return value from draggingentered: is used */

- (void)draggingexited:(nullable id

)sender;

- (bool)preparefordragoperation:(id

)sender;

- (bool)performdragoperation:(id

)sender;

- (void)concludedragoperation:(nullable id

)sender;

當拖拽檔案進入檢視中,觸發- draggingentered,進入- draggingupdated迴圈中(該方法一般不做實現,進入試圖後就會不斷觸發。除非需要實時獲取相關資訊)。如果推拽檔案從試圖中移開,則觸發- draggingexited。如果未exited,在檢視區域drop,則會依次呼叫preparefordragoperation,performdragoperation,concludedragoperation。

draggingentered需返回nsdragoperation型別引數。

during draggingentered: or draggingupdated:, you are responsible for returning the drag operation. in some cases, you may accept some, but not all items on the dragging pasteboard. (for example, you only accept image files.)

一般會在draggingentered:中對接受的檔案型別做一定的處理。或者說你如果只接收型別,則可在該方法內進行判斷,非型別則返回nsdragoperationnone,進入draggingexited。

[nsimage caninitwithpasteboard:[sender draggingpasteboard]]
具體如下圖所示:

其中如果返回nsdragoperationnone則表示不允許drop,直接結束動作。如果傳入其他值,對應相應的操作,並會執行相應的操作中。

you provide an image to display during the drag, a pasteboard holding the data, and an object that acts as the 「owner」, or dragging source, of the data.

基本上按拖拽檢視的基本流程。

nstextview與nsimageview的不同:

1. draggingenter中返回nsdragoperationnone,不會像nsimageview進入draggingexit,而是會進入preparefordragoperation。

nstextview:nstext:nsview。 nstextview遵循nsdraggingsource協議.nsview遵循了nsdraggingdestination協議

nstextfield就更奇怪了,竟然不進入draggingentered**中。目前還無法實現禁用nstextfield的draganddrop特性。

分析: nstextfield:nscontrol:nsview

未完待續…

mfc拖拉檔案

將bitmap檔案拖進對話方塊中,獲取位 件的引數。首先是面板上的檔案拖拉屬性應該設定為true 其次,利用類嚮導新增訊息響應函式,on wm dropfiles 在函式中獲取檔案的路徑資訊。獲取拖拉上來的檔名 uint count count dragqueryfile hdropinfo,0xf...

檔案獲取路徑

獲取模組的完整路徑,包含檔名 system.diagnostics.process.getcurrentprocess mainmodule.filename 獲取和設定當前目錄 該程序從中啟動的目錄 的完全限定目錄。system.environment.currentdirectory 獲取應用程...

獲取檔案路徑

相對路徑和絕對路徑的轉換 unit xpath inte ce uses shlwapi,windows,sysutils 取絕對路徑的函式。需要引用 shlwapi.pas 參考路徑 相對路徑 s getabsolutepath c windows system32 demo.txt s 將得到 ...