2014-06-25 8 views
9

मैं अपने ऐप को साझा करने जोड़ रहा पर एक NSSharingServicePicker दिखा रहा है (लक्षित कर मावेरिक्स, 10.9) है, जो मैं इस तरह काम करना चाहता हूँ:MouseUp

  1. उपयोगकर्ता शेयर बटन पर क्लिक करता
  2. कर्सर परिवर्तन
  3. क्रॉसहेयर को
  4. उपयोगकर्ता वह
  5. 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_async और dispatch_after का उपयोग करके इसे दिखाने का प्रयास किया है, लेकिन वे काम नहीं कर पाए। मुझे लगता है कि मैं इसे अनदेखा कर सकता हूं, लेकिन क्या वह दरवाजा छोड़ने के लिए दरवाजा छोड़ देता है?

+0

मुझे एक ही चेतावनी मिल रही है। क्या आपको कभी समाधान मिला या पता चला कि माउसअप पर NSSharingServicePicker को दिखाने में समस्या क्यों होगी? – massimobio

+0

@massimobio nope, क्षमा करें। यह अभी भी एक खुला प्रश्न है, हालांकि मैंने बाद में एसडीके के साथ जांच नहीं की है। – Dov

+0

ठीक है, धन्यवाद। मैं अभी भी इसे एक्सकोड 7 बी 6 में देख रहा हूं। मुझे लगता है कि मैं इसे अभी अनदेखा कर दूंगा। – massimobio

उत्तर

1

मुझे पता है कि यह एक साल देर हो चुकी है, लेकिन
मुझे एक ही समस्या थी। कुछ शोध के बाद, मैं इस जवाब के साथ वापस आ गया। इस कोड को लागू करने से पहले, मेरा बटन थोड़ी देर के लिए स्पिन करेगा, और फिर आपके पास उसी त्रुटि के साथ वापस आ जाएगा। जब मैं अब अपने शेयर बटन पर क्लिक करता हूं, तो यह अब लगी नहीं है, और कोई त्रुटि नहीं लौटाता है। इसे अपने ऐप के awakeFromNib विधि में डालें: [yourShareButtonName sendActionOn:NSLeftMouseDownMask];। यह वही अपने कोड की तरह दिखना चाहिए है:

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

मुझे आशा है कि इस मदद करता है!

+0

अपने शेयर बटन का बटन नाम डालें जहां यह कहता है कि 'yourShareButtonName' – SGP

+0

प्रयास के लिए धन्यवाद, लेकिन यह मेरे मामले में लागू नहीं होता है। मैं बटन पर क्लिक करने के तुरंत बाद शेयर शीट नहीं दिखा रहा हूं, लेकिन जब तक वे पहले चयन को खींच नहीं लेते हैं, तब तक प्रतीक्षा कर रहे हैं। साथ ही, आपका सुझाव केवल यह लागू करता है कि लॉग संदेश पहले से क्या कह रहा था। – Dov

संबंधित मुद्दे