Xcode şablonunu kullanarak yeni bir boş standart uygulama oluşturdum. MainMenu.xib içinde pencere kaldırıldı ve bir xib ile yeni bir özelleştirilmiş NSWindowController alt sınıfı oluşturduk.Standart uygulamada bir pencere göstermek için NSWindowController nasıl kullanılır?
"WYSunFlowerWindowController.h" ve "WYSunFlowerWindowController.m" olarak adlandırıldılar.
Ve init fonksiyonu aşağıda gibi sonra ekleyin:
- (id)init
{
NSLog(@"init()");
return [super initWithWindowNibName:@"WYSunFlowerWindowController" owner:self];
}
Ve WYAppDelegate.m dosyası aşağıda gibidir:
static WYSunFlowerMainWindowController* windowController = nil;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
if (windowController == nil) {
windowController = [[WYSunFlowerMainWindowController alloc] init];
}
[[windowController window] makeKeyAndOrderFront:windowController];
}
Ve pencere gösteremez ki sorun var Ben uygulamayı başlattıktan sonra kendini. Herkes bana nedenini söyleyebilir? Kodumda bir sorun mu var?
Objective-C ve kakaoda yeni biriyim. Bu yüzden kendimce çözemediğim aptalca bir hata yapabilirim.
GÜNCELLEME:
İşte benim proje kaynağıdır. Pleas bir göz ve benim hatadır anlamaya yardım et. İnit yönteminde
https://dl.dropbox.com/u/3193707/SunFlower.zip
ARC etkinleştirilmiş misiniz? Ben ARC ile ben app delegate bir özellik yapmazsanız (ben bunu yapmak için başka yollar vardır emin değilim) pencere denetleyicisi serbest ayrıldığını buldum. – sosborn
ARC kullanıyorum. WindowController'ı AppDelegate Sınıfının statik alanı olarak yapıyorum. Uygulama sonlandırılıncaya kadar ayrılmayacak düşünüyorum. – morphinewan