لماذا لا يتم ربط ورقتي بالنافذة التي يتم تشغيلها من أجلها؟

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

سؤال

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

[NSApp beginSheet: sheetWindow modalForWindow: mainWindow modalDelegate: self didEndSelector: @selector(didEndSheet:returnCode:contextInfo:) contextInfo: nil];

الذي يعرض نافذة الورقة ويبدأ جلسة مشروطة، لكن تحتوي النافذة على شريط عنوان Aqua قياسي، وهي غير "متصلة" بالنافذة الرئيسية ويمكن تحريكها تمامًا مثل النافذة العادية.وغني عن القول أن هذا غير مرغوب فيه :-).لماذا لا "تنبثق" نافذة الورقة من النافذة التي يتم تشغيلها من أجلها، كما تفعل الأوراق عادةً عند البدء بهذه الطريقة؟

لقد تساءلت عما إذا كانت حقيقة أنني بدأت الورقة داخل وحدة التحكم -awakeFromNib قد يكون له تأثير، لذلك قمت بنقل الورقة إلى إجراء الزر الذي يمكنني تشغيله لاحقًا.هذا لم يغير السلوك.لم أفكر في أي شيء آخر لمحاولة.أنا أستهدف الإصدار 10.5 SDK، باستخدام Xcode 3.1.

يحرر: لذا يبدو أنني قمت بإنشاء مربع حوار مشروط؛يتم بدء كل من الأوراق ومربعات حوار التطبيقات المشروطة بالملحق -beginSheet:modalForWindow:modalDelegate:didEndSelector:contextInfo: طريقة.ولكن كيف يمكنني الإشارة إلى أن نافذتي يجب أن تكون عبارة عن ورقة و لا حوار مشروط؟

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

المحلول

إذا كانت قيمة mainWindow صفرًا، فسيتم عرض الورقة كنافذة/مربع حوار.

نصائح أخرى

حدث معي هذا منذ يومين:

  • لقد نسيت تعيين نافذة او شباك مخرج وحدة التحكم في النافذة (صاحب الملف من ملف Nib).كما أشار ناثان، قد ترى أن -[NSWindowController window] طريقة إرجاع الصفر.
  • يجب عليك أيضًا إلغاء تحديد مرئية عند الإطلاق خيار الورقة.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top