2012-11-25 28 views
7

वहाँ एक Firemonkey आवेदन में TOpenDialog, जो मैक एपस्टोर के लिए सैंडबॉक्स है के साथ एक समस्या हो रहा है। मैं XE3 का उपयोग करता हूं, लेकिन यह XE2 में भी मौजूद है। मैं वास्तव में यहाँ एक QC रिपोर्ट में पाया गया है, लेकिन यह अभी भी अनसुलझे है:TOpenDialog/NSOpenPanel एक sandboxed डेल्फी अनुप्रयोग में काम नहीं कर रहा

http://qc.embarcadero.com/wc/qcmain.aspx?d=105344

किसी को भी यह कैसे हल करने के लिए एक ही समस्या है, या किसी भी विचार हुआ है?

यह जाँच करने के लिए बहुत आसान है। बस एक फॉर्म पर एक TOpenDialog डालें और निष्पादन विधि को कॉल करें। साइन इन करें और Embarcadero निर्देशों के अनुसार आवेदन सैंडबॉक्स:

http://docwiki.embarcadero.com/RADStudio/en/Mac_OS_X_Application_Development

जब निष्पादित कहा जाता है एक देरी है, एप्लिकेशन एक पल के लिए जमा है, लेकिन कुछ भी नहीं दिखाया गया है। कोई अपवाद या त्रुटि संदेश नहीं हैं। यदि ऐप सैंडबॉक्स नहीं है तो संवाद ठीक से काम करता है।

यह कोड भी काम नहीं करता है, इसलिए समस्या शायद TNSOpenPanel में कहीं है, जिसे TOpenDialog द्वारा बुलाया जाता है, लेकिन दुर्भाग्य से मुझे यह नहीं मिला।

var 
    LOpenDir: NSOpenPanel; 
begin 
    LOpenDir := TNSOpenPanel.Wrap(TNSOpenPanel.OCClass.openPanel); 
    LOpenDir.runModal; 
    LOpenDir.release; 

मैं Apple docs में पढ़ा कि सैंडबॉक्स साथ NSOpenPanel विभिन्न वर्गों से प्राप्त होता है एक sandbox के बिना एक की तुलना में,। मुझे लगता है कि यह समस्या का कारण है।

किसी भी विचार की सराहना की जाएगी। हम वास्तव में एक ऐप प्रकाशित नहीं कर सकते हैं जिसे बिना ओपन/सेव डायलॉग के फाइलों के साथ काम करना है :)

बीटीडब्ल्यू, मैंने परियोजना विकल्पों में एंटाइटेलमेंट के कई संयोजनों की कोशिश की, लेकिन उनका कोई प्रभाव नहीं पड़ा।

+0

मैं एक ही मुद्दा है, किसी भी समाधान मिल गया? धन्यवाद। – RRN

+0

मुझे दुर्भाग्यवश अब तक कोई समाधान नहीं मिला है। एकमात्र सकारात्मक बात यह है कि समस्या ओएसएक्स 10.7 पर दिखाई देती है, लेकिन 10.8 पर नहीं। अब तक मेरे ऐप में एकमात्र समाधान 10.7 पर चलने पर 'ब्राउज़ करें' कार्यक्षमता को अक्षम करना है और केवल ड्रैग-ड्रॉप विकल्पों का उपयोग करना है। – VGeorgiev

उत्तर

0

जब एक आवेदन सैंडबॉक्स में है, NSOpenPanel/NSSavePanel Powerbox नामक एक पारदर्शी मॉड्यूल द्वारा प्रबंधित किया जाना चाहिए। ऐपकिट फ्रेमवर्क के सामान्य पैनलों का कोई प्रभाव नहीं पड़ता है। लेकिन फाइल सिस्टम के लिए उपयोग के लिए Powerbox सक्षम करने के लिए, पात्रता सूची

com.apple.security.files.user-selected.read-write YES 

विन्यास शामिल होना चाहिए।

+0

हाँ, मैंने पहले से ही इसे एंटाइटेलमेंट में जोड़ने का प्रयास किया है, लेकिन यह व्यवहार को नहीं बदलता है। क्या कोई विशिष्ट बात है कि मुझे ओपनपैनल को पावरबॉक्स मॉड्यूल के साथ कॉल करना चाहिए? मुझे नहीं लगता कि, लेकिन अभी भी ... – VGeorgiev

+0

हैलो जॉर्जियेव, मैं कोशिश करते हैं और यहाँ जवाब के रूप में जल्द ही लिखने के रूप में मैं एक समाधान मिल जाएगा। –

+0

हैलो, मैं अपने त्रुटि पुनर्जीवित करने के लिए कोशिश कर रहा हूँ, फिर भी मैं आवेदन codesign का प्रबंधन नहीं कर सके। मुझे त्रुटि मिली: ऑब्जेक्ट फ़ाइल प्रारूप अपरिचित, अमान्य, या अनुपयुक्त। क्या आपने कभी इस स्थिति का सामना किया है और आप अपने ऐप को कैसे कोड कर सकते हैं? –