2009-05-13 3 views
9

NSWindowController initWindowNibName kullanarak yüklediğim bir NIB dosyası var. NIB dosyası bir NSWindow içerir. Bu dosyanın sahibi NSWindowController sınıfındadır. Pencere çıkışını Dosya Sahibi'nden Pencereye bağladım.NSWindowController kullanarak NIB dosyası yükleme pencere veya üst düzey nesneleri ayarlamıyor

NIB'yi yüklediğimde, [windowController penceresi] nil yani üst düzey nesneler dizisidir. Ancak, hala [windowController showWindow: nil] 'yi çağırabilir ve pencereyi başarıyla gösterebilirim.

Burada bir şey gözükmüyor. Bağlantıları onayladım ve Dosya Sahibi Tamam. Infact, windowWntroller örneğinin hata ayıklayıcıdaki _owner değerine baktığımda, beklediğim gibi kendisini işaret ediyor.

Neler olabileceğine dair herhangi bir öneriniz var mı?

Teşekkürler!

cevap

6

[windowController window] nil dediğinizde, bunu nasıl belirliyorsunuz? NIB, ilk kez -window çağrılıncaya kadar yüklenmez. Yani hata ayıklayıcıya bakıyorsanız, showWindow: numaralı telefonu arayana kadar _window nil göreceksiniz. Bundan sonra, _window, sıfır olmayan bir değere sahip olmalıdır.

+0

Evet, haklısın. [Kontrolör penceresi] aramadan önce pencerenin boş olmadığını iddia ediyordum. Hala kakaonun sizin için örtüştüğü "büyü" ye pek alışık değilim ... benden daha zeki, ya da bence beni düşündüğümden daha aptalca gösteriyor. – psychotik

+1

Kakao'da geliştirdiğim süre, ne kadar küçük büyü olduğunu gerçekten daha fazla öğrenirim (KVO hariç, metot hafifletme, onu anladığınızda bile sihirdir). Hile, herhangi bir iç uygulama detaylarına güvenmemek. _window'un ne anlama geldiğini bildiğinizi varsaymayın. Bir alt çizgi var; senin işin değil. Kamu arayüzleri davranışlarında son derece tutarlıdır. Etrafına gizlice girmeye çalışma. İyi şanslar! –

5

NSWindowController alt sınıfına sahip misiniz? Bunu yaparken

, bir NSWindowController MyWindowController denilen kullanmak ve içinde initWithWindowNibName: çağrı alt sınıf en init

Ve sonra, set dosya'nın sahibi MyWindowController sınıfına işaret edecek.

+3

NSWindowController alt sınıfına ihtiyacınız yoktur. İzin verilir, ancak gerekli değildir ve psiktik problemini çözmemelidir. –

+1

Hem PH hem de Abizern, sorunumu çözmek için kredi aldı. – user523234

+0

@ user523234, yup konuma çözüm bulmak için bana ve askere teşekkürler! – Mazyod