سؤال

باستخدام إطار عمل Apple OS X Cocoa، كيف يمكنني نشر ملف ملزمة (مربع حوار مشروط منزلق للأسفل) في نافذة عملية أخرى؟

يحرر: وضحت قليلا:

تطبيقي هو امتداد Finder للتحكم في إصدار Subversion (http://scplugin.tigris.org/).جزء من تطبيقي عبارة عن مكون إضافي (عنصر قائمة سياقية لـ Finder)؛ومع ذلك، فإن الجزء الأكبر من طلبي يتم في عملية خفية منفصلة.لعدة أسباب، اخترنا وضع كل التعليمات البرمجية تقريبًا في البرنامج الخفي؛يحدد المكون الإضافي القائمة نفسها فقط، وتنتقل أحداث Apple إلى البرنامج الخفي.

في بعض الأحيان، يحتاج البرنامج الخفي إلى مطالبة المستخدم بمزيد من المعلومات.يمكن أن تظهر نافذة على الشاشة لهذا، ولكن هذا أمر مزعج (يتم وضعه بشكل عشوائي)، ويبدو لي أن تدفق العمل هنا مشروط بشكل شرعي، على سبيل المثال، "حدد ملفًا، واختر "الالتزام" من القائمة، وقدم تعليقات الالتزام ، قم بالعملية."

التعاون بين العمليات (مثل تمرير مرجع من نوع ما) مقبول:كلتا العمليتين خاصتان بي، لكني أريد تجنب ربط كود الورقة بالعملية الأساسية.

هل كانت مفيدة؟

المحلول

حقًا، يبدو أنك تحاول إجراء الاتصال بين العمليات لديك على مستوى العرض، وهو ما لا يحدث حقًا في طريقة عمل Cocoa بشكل عام.ستكون الأمور أسهل بكثير إذا قمت بفصل طبقاتك أكثر قليلاً من ذلك.

لماذا لا تريد وضع كود الورقة في العملية الأخرى؟إنه رمز العرض، ورمز العرض خاص بالعملية بطبيعته.ربما يكون الشيء الصحيح الذي يجب فعله هنا هو إضافة دعم ورقة مشروطة عامة إلى حد ما إلى كود البرنامج الإضافي الخاص بك، واستدعاء IPC الذي يمكن أن يقوم به البرنامج الخفي الخاص بك لاستدعاء هذا الرمز.ستكون محاولة إرسال كائنات العرض إلى العملية عن بُعد بمثابة كابوس إذا تمكنت من إنجاحها على الإطلاق.

أنت تحارب الأطر بهذا النهج.

نصائح أخرى

لا يمكنك إضافة ورقة إلى نافذة في عملية أخرى، لأنه ليس لديك على الأكثر سوى الوصول الأكثر تقييدًا إلى النوافذ في العملية الأخرى.

من فضلك لا تفعل هذا.اجعل التفاعل غير مشروط إن أمكن.خاصة في شيء مثل الالتزام، من الأفضل أن تكون قادرًا على تصفح ملفاتك أثناء كتابة تعليقات الالتزام.

يحتوي نظام التشغيل OS X على مجموعات نوافذ، لكنني لا أعتقد أنه يمكنهم (بسهولة) توسيع التطبيقات.

شيء آخر يجب مراعاته هو أنه في OS X من الممكن فتح العديد من نوافذ Finder في نفس المجلد (على عكس OS 9).حتى لو كنت فعل لديك امتيازات/واجهات برمجة تطبيقات كافية لإضافة ورقة إلى نافذة Finder، فليس الأمر كما لو أن طريقة تلك النافذة ستمنع المستخدم من القدرة على مواصلة العمل مع الملفات.

(رأيي الشخصي كمستخدم Mac منذ فترة طويلة هو أن هذا النوع من التفاعل من شأنه أن يدفعني إلى أعلى الحائط.)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top