Я новичок в программировании какао.initWithWindow: в оконном контроллере не назовешь
В Xcode 6.1 я создал приложение OS X с помощью раскадровки. В Outline есть оконный контроллер. Я изменил свой класс в «Identity Inspector» на индивидуальный подкласс NSWindowController
, который называется WindowController
.
Я написал следующий код в @implementation
из WindowController
:
- (instancetype)initWithWindow:(NSWindow *) window {
NSLog(@"window");
window.titleVisibility = NSWindowTitleHidden;
return [super initWithWindow:window];
}
Но выход панель ничего не показывает.
если я переопределить метод windowDidLoad
в классе,
- (void)windowDidLoad {
[super windowDidLoad];
self.window.titleVisibility = NSWindowTitleHidden;
NSLog("@Cool...");
}
сообщение показывает вверх.
doc of NSWindowController
говорит, что -initWithWindow:
- назначенный Инициаллер класса. Как его можно пропустить?
В How Window Controllers Work section of Window Programming Guide, он говорит:
Для простых документов, то есть документов только один СИБ файл, содержащий окно, вам нужно сделать немного непосредственно
NSWindowController
объектов. AppKit создает один для вас. Однако, если оконного контроллера по умолчанию недостаточно, вы можете создать собственный подклассNSWindowController
.
Именно это я и делаю. Но я не знаю, чего мне здесь не хватает.
Спасибо!
может иметь отношение к использованию раскадровки, как вы устанавливаете/создаете оконный контроллер? Только в раскадровке или в коде? – Volker
Hi, @Volker. Спасибо за ваш ответ. Я просто использую раскадровку. Я не понимаю, почему 'initWithWindow:' был обойден. – LShi