NSWindowController
alt sınıfı kullanıyor olmalısınız. NSWindowController
, tam olarak ne yapmak istediğinizi yapmak için tasarlanmıştır ve ucunu doğrudan NSBundle
yöntemlerini kullanarak yüklerseniz karşılaşacağınız birkaç sorunu çözer. Pencereleri yönetmek için genellikle her zaman bir NSWindowController
alt sınıfı kullanmalısınız.
NSWindowController
bir alt sınıfını oluşturun:
Interface Builder yılında
@interface MyWindowController : NSWindowController {}
@end
@implementation MyWindowController
- (id)init
{
self = [super initWithWindowNibName:@"MyWindow"];
if(self)
{
//initialize stuff
}
return self;
}
//this is a simple override of -showWindow: to ensure the window is always centered
-(IBAction)showWindow:(id)sender
{
[super showWindow:sender];
[[self window] center];
}
@end
, MyWindowController
olmak ve kalem ucundaki pencere nesnesine Dosyanın Sahibinin ait window
çıkışını bağlamak için Dosyanın Sahibinin sınıfını ayarlayın.
Daha sonra, bu yaparak pencereyi görüntüleyebilirsiniz:
aşağıda Benim kod
MyWindowController* controller = [[MyWindowController alloc] init];
[controller showWindow:self];
Her şeyi yaptığını sen hariç "Dosyanın Sahibinin pencere çıkışını bağlamak", zaten söyledi. Bunu yaptıktan sonra her şey işe yaradı. Çok teşekkürler! +1 ve Kene. –
IB'deki pencerenin 'Restorable 'özelliğinin işaretini kaldırın. –
@KeithSmiley Hangi editörü 'Restorable' özelliktir, ya bu artık Xcode 5.x uygulanır? –