2010-10-03 81 views
0

我正在嘗試編寫應用程序。這將允許用戶從NSButton拖動到另一個。放棄時,我希望標題放在按鈕上。拖放到NSButton

我找不到使NSButton可拖動的方法。可能嗎?

回答

4

首先警告:這聽起來像是會讓用戶感到困惑。按鈕旨在模擬現實世界中的按鈕。你推他們而不是拖動他們。

話雖如此,在NSButton的子類當然是可以做到的。

拖動源

  1. 實現所述拖動源方法draggingSourceOperationMaskForLocal :.聽起來就像你在複製標題,所以你可能想使用NSDragOperationCopy。
  2. 調用dragImage:at:offset:event:pasteboard:source:slideBack:在您的mouseDragged:方法中。使用拖動板([NSPasteboard pasteboardWithName:NSDragPboard])並將您的按鈕標題複製到其中。對於圖像,您可以將按鈕繪製到NSImage中,並將其用作拖動圖像,或者可以使用圖標甚至標題。

將目的地

  1. 註冊您的自定義按鈕,以便能夠使用registerForDraggedTypes接受標題字符串:。
  2. 實現拖動目標方法draggingEntered:和performDragOperation:返回適當的值。還有其他幾種方法,包括draggingUpdated:和draggingExited:可用於提供視覺反饋的其他方法。

有很多關於實施拖動&下降的信息。閱讀Apple的文檔:Drag & Drop Programming TopicsPasteboard Programming Guide