Создание NSApplication в какао? - PullRequest
2 голосов
/ 17 июня 2011

Я долго искал, но просто не могу ничего найти, у меня уже есть окно, которое я могу создать, но теперь, когда я попытался вызвать для него makeKeyAndOrderFront, не было приложения, чтобы вызвать его, поэтому мне было интересно, если кто-нибудь может дать быстрый пример того, как я могу создать приложение? Я узнал, что это NSApplication и мне нужно установить Delegate и т. Д., Но не уверен, что именно требуется. например, чтобы создать окно, мне понадобился бы такой код:

NSWindow *window;
window = [[NSWindow alloc] initWithContentRect: NSMakeRect(10, 100, 150, 200)
    styleMask:( NSResizableWindowMask | NSClosableWindowMask | NSTitledWindowMask)
    backing: NSBackingStoreBuffered
    defer: NO];
[window setTitle: @"Test window"];

Так может кто-нибудь дать мне связанный код, но для NSApplication у меня уже есть кнопки и окно?

Ответы [ 2 ]

4 голосов
/ 18 июня 2011

Чтобы сделать это целиком в коде, безо всякого кончика, сначала вы должны удалить запись NSMainMenuNib из вашего файла Info.plist.Затем в main:

  1. Создайте пул автоматического выпуска.
  2. Запросите у класса NSApplication общий объект приложения.Если ранее ничего не запрашивалось для общего объекта приложения, он создаст его.
  3. Создайте NSMenu для хранения главного меню.Создайте пункт меню для каждого из стандартных меню, затем создайте меню для каждого из стандартных меню и установите каждое меню как подменю пункта меню.Для каждого меню создайте пункты, которые должны войти в него.Не забудьте локализовать заголовки и установить соответствующие ключевые эквиваленты.Установите меню верхнего уровня в качестве главного меню приложения.
  4. Для приложения с одним окном создайте окно в этой точке, создайте и предоставьте ему его представление содержимого, создайте любые представления, которые вы хотите в нем, и добавьтеих к представлению содержимого и упорядочите окно.
  5. Скажите приложению запустить.
  6. Очистите пул.
  7. Выйдите успешно.

Это самый минимум.Установка делегата, как обычно, необязательна.

Когда вы создаете приложение обычным способом, все это, кроме создания и добавления подпредставлений, которое вы бы делали в IB, выполняется для вас.

3 голосов
/ 17 июня 2011

Просто начните с одного из шаблонов, доступных в Xcode.Затем автоматически устанавливается NSApplication.

Если вы хотите сделать сложный путь, кодируя все, вам поможет эта серия постов в блоге «Работа без перьев», которая начинается здесь 1005 *.Но вы не захотите этого делать, если не разберетесь во внутренней работе Какао.

Итак, просто придерживайтесь того, что обычно делают люди, и начните с шаблона, доступного в Xcode.

...