أزرار الاستجابة غير محاذاة إلى اليمين لـ NSAlert

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

  •  27-10-2019
  •  | 
  •  

سؤال

لدي NSAlert مع عرض ملحق وثلاثة أزرار ، الأزرار ليست محاذية لليمين (لنظام LTR) ولكن يبدو أنها تتوسع لعرض عرض الملحق كما هو موضح أدناه عرض NSAlert والإكسسوارات

عند إزالة عرض الملحق أيضًا ، لم تتم محاذاة الأزرار الثلاثة بشكل صحيح إلى اليمين

كيف يمكن حل هذه المشكلة؟لا أريد استبدال NSAlert بالكود بنفسي ، فلماذا يجب أن أعيد اختراع العجلة؟

تم نسخ الكود الذي أستخدمه بواسطة setAccessoryView والإبلاغ عنها أدناه Genacodicetagpre

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

المحلول

هذا هو التنسيق الافتراضي الحالي للتنبيه. يتم التعامل مع التنبيه الذي يحتوي على ثلاثة أزرار بشكل مختلف لأن حالة استخدامه الشائعة هي:

  • الزر الأول (مثل موافق) يمثل تأكيدًا
  • الزر الثاني (مثل "إلغاء") يمثل عملية إلغاء
  • الزر الثالث (على سبيل المثال ، اقتل البطريق) يمثل إجراءً بديلاً ، من المحتمل أن يكون مدمرًا.

يتم وضع الزر الثالث على اليسار لتوضيح أنه يمثل إجراءً مختلفًا عن المضي قدمًا (الزر الأول) والإيقاف (الزر الثاني).

يمكن ملاحظة ذلك في بعض تطبيقات Apple. في الصفحات:

أدخل وصف الصورة هنا

في TextEdit:

أدخل وصف الصورة هنا

أيضًا ، وثائق NSAlert على ما يلي:

يخضع تخطيط التنبيه القياسي للتغيير في إصدارات برامج النظام المستقبلية. لذلك ، إذا كنت تعتمد على تخطيط التنبيه المخصص ، فيجب عليك التأكد من أن التخطيطات الخاصة بك تعمل كما هو متوقع في الإصدارات المستقبلية من نظام التشغيل Mac OS.

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

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

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