2010-06-26 3 views
2

У меня возникли проблемы с отображением NSWindow без использования Interface Builder. Инициализация окна была довольно запутанной, так как я больше знаком с iPhone (у которого нет эквивалента NSWindow). Так что я искал Google для некоторого кода, и я в конце концов нашел это:NSWindow не отображает

NSRect windowRect = NSMakeRect(10.0f, 10.0f, 800.0f, 600.0f); 

NSWindow *window = [[NSWindow alloc] initWithContentRect:windowRect 
               styleMask:(NSResizableWindowMask | NSClosableWindowMask | NSTitledWindowMask) 
               backing:NSBackingStoreBuffered defer:NO]; 

[window makeKeyAndOrderFront:nil]; 

Я скопировал этот код и поместил его в applicationDidFinishLaunching и думал, что все будет хорошо. Но все это плохо. Xcode не отображал никаких ошибок (или предупреждений) в результатах сборки. Но, я получаю это сообщение в журнале дисплея:

2010-06-26 13:33:47.170 FooApp[283:a0f] Could not connect the action buttonPressed: to target of class NSApplication 

Я не знаю, как интерпретировать это как Google не удалось мне на поиске решения этого журнала отображения ошибок. И, насколько я могу судить, на данный момент у меня нет никаких действий, включая buttonPressed. В качестве примечания: я не знаю, относится ли это или нет, но я удалил Main Window.xib и его сопроводительное свойство в info.plist.

Любая помощь была бы принята с благодарностью.

UPDATE: Я пытался делать некоторые printf отладки (никогда не беспокоили обучения NSLog) и вещь не будет даже printf если вещь находится в самом начале appliactionDidFinishLaunching или еще хуже, в начале main (до return if incase некоторые из вас испытывают соблазн спросить меня, если я поместил printf до или после инструкции return).

+0

Можем ли мы увидеть больше кода? –

+0

@Dave DeLong: весь этот сегмент в значительной степени. Просто начал проект, который вы видите. – 2010-06-27 00:01:33

ответ

2

MainWindow.xib является частью шаблона приложения iphone, не так ли? Что именно вы удалили? У вас все еще есть MainMenu.xib, верно?

Как вы обнаружили, наличие файла nib не является обязательным для приложения Cocoa. У вас должен быть хотя бы один наконечник (или xib, для вас), и в нем должно быть главное меню.

+0

Нет. Мне известно, что у меня есть MainMenu.xib. Я удалил его, потому что я пытаюсь понять, как что-то сделать без него. – 2010-06-27 16:04:16

+0

Вам это нужно, у него есть главное меню. Каждое приложение Cocoa должно иметь главное меню. – hooleyhoop

+0

Действительно, кажется, что это так странно, учитывая, что iPhone-приложения вам не нужны .xibs технически. Ты уверен? Потому что это, похоже, не совсем правильно. – 2010-06-27 17:12:33

Смежные вопросы