2014-06-25 26 views
9

我加入共享我的應用程序顯示一個NSSharingServicePicker(針對小牛,10.9),我想這樣的工作:上的MouseUp

  1. 用戶點擊分享按鈕
  2. 光標變爲十字
  3. 用戶拖動的,他想分享
  4. NSSharingServicePicker顯示什麼選擇,允許用戶挑選服務與共享

我正在使用-mouseDown:,-mouseDragged:-mouseUp:事件來完成此操作。 mouseDown開始選擇,mouseDragged提供關於所選區域的反饋,然後mouseUp完成拖動,顯示選取器。每一次,不過,我得到這個寫入到控制檯:

2014-06-25 00:13:45.111 App[31401:303] Warning: -[NSSharingServicePicker showRelativeToRect: ofView: preferredEdge:] should not be called on mouseUp 
Please configure the sender with -[NSControl sendActionOn:NSLeftMouseDownMask]; 

我不明白爲什麼這將是一個問題,除非你展示從鼠標一個按鈕點擊它。我應該忽略這個消息嗎?我嘗試使用dispatch_asyncdispatch_after來嘗試讓它在事件調用之外運行,但它們不起作用。我想我可以忽略它,但是這是否會打開貶值的大門?

+0

我得到相同的警告。你有沒有找到一個解決方案或發現爲什麼這將是一個問題,以顯示鼠標上的NSSharingServicePicker? – massimobio

+0

@massimobio nope,對不起。這仍然是一個懸而未決的問題,雖然我沒有檢查後來的SDK。 – Dov

+0

好的,謝謝。我仍然在Xcode 7b6中看到它。我想現在我會忽略它。 – massimobio

回答

1

我知道這是一年後期,但是,
我有同樣的問題。經過一番研究,我回想起這個答案。在我執行此代碼之前,我的按鈕會旋轉一段時間,然後返回您遇到的相同錯誤。當我點擊我的分享按鈕時,它不再滯後,並且不會返回任何錯誤。將此插入到您的應用的awakeFromNib方法中:[yourShareButtonName sendActionOn:NSLeftMouseDownMask];。 這是你的代碼應該是什麼樣子:

- (void)awakeFromNib { 
    [yourShareButtonName sendActionOn:NSLeftMouseDownMask]; 
} 

我希望這有助於!

+0

插入共享按鈕的按鈕名稱,它說'yourShareButtonName' – SGP

+0

感謝您的嘗試,但它不適用於我的情況。點擊按鈕後,我沒有立即顯示分享表,而是等到他們先拖出選擇。另外,您的建議僅實現日誌消息已經說過的內容。 – Dov