كيفية جعل NSColorPanel (باستخدام NSColorWell) ولوحة الألوان الخاصة بـ NSFontPanel تتعايشان؟

StackOverflow https://stackoverflow.com/questions/1625279

سؤال

لدي لوحة تفضيلات في طلبي حيث لدي NSColorWell لتعيين بعض ألوان الخلفية والزر الذي يفتح NSFontPanel لاختيار الخط.

السلوك الذي أريد أن أمتلكه هو ما يلي:

  • عندما أقوم بالنقر على NSColorWell ثم اسحب فوق بعض الألوان في اللوحة، وأريد تغييرها لون الخلفية في منطقة "المعاينة" الخاصة بي أثناء السحب.

  • عندما أنقر على الزر "تغيير الخط..."، أظهر خطي NSFontPanel وعندما أختار خطًا، يجب أن يتغير في منطقة "المعاينة" الخاصة بي أيضًا.لنفترض أنني قمت بالنقر فوق لون زر من NSFontPanel, ، أريد تغيير لون الخط الخاص بي.

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

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

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

شكرا لك مقدما!

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

المحلول

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

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

سأسمي هذا خطأ: http://bugreport.apple.com

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