Я новичок в Objective-C/Cocoa, и мне было интересно, можете ли вы предоставить мне некоторые рекомендации относительно первого настольного приложения Mac OS X, которое я пишу.создание окна, просмотра и подзаголовков - mac os x
Модельная часть представляет собой алгоритм самоорганизующейся карты, SOM (Kohonen, 1982).
С точки зрения интерфейса идея состоит в том, чтобы иметь главное окно, содержащее родительский вид 1024x768 и 192 квадрата 64x64 (детские представления). Цвета дочерних представлений будут меняться по мере запуска алгоритма SOM. После того, как SOM будет построен, пользователи смогут прослушивать звуки, отображаемые на определенный квадрат, нажав на него.
Алгоритм SOM уже реализован, но мне сложно создать интерфейс и подключить его к части модели.
Я думал о создании окна, используя код ниже:
NSRect windowRect = NSMakeRect(0.0f, 0.0f, 1024.0f, 790.0f);
NSWindow *window = [[NSWindow alloc] initWithContentRect:windowRect
styleMask:(NSResizableWindowMask | NSClosableWindowMask | NSTitledWindowMask)
backing:NSBackingStoreBuffered defer:NO];
[window setBackgroundColor:[NSColor blueColor]];
[window makeKeyAndOrderFront:nil];
Тогда я хотел бы создать основной добавить основной вид как подвид представления содержимого моего окна:
NSView *view = [[NSView alloc] init];
[window setContentView: view]
Наконец, я хотел бы создать мнения ребенка и добавить их в качестве подвидов из родительского вида:
for(int i=0;i<12;i++)
{
for(int j=0;j<16;j++)
{
NSView *child = [[NSView alloc]initWithFrame:CGRectMake(64*i,64*j,64, 64)];
[view addSubview:child];
}
}
Мои вопросы:
1) Имеют ли смысл мои идеи?
2) Куда должны проходить эти куски кода? Я все еще сомневаюсь, где они должны быть частью AppDelegate или ViewController?
3) Что необходимо добавить к основному методу загрузки интерфейса? В настоящий момент основным методом являются только методы вызова, которые относятся к обработке звука и алгоритму SOM. Я думаю, общий вопрос здесь заключается в том, как моделировать и просматривать детали.
Прошу прощения за наивные вопросы и заранее заблаговременно за любые идеи, которые помогут мне добиться успеха.
спасибо.
Благодарим вас за ответ. Предположим, что у меня будет только 6 subviews вместо 192. Будет ли parentView быть contentView окна? Достаточно ли одного NSViewController для управления созданием субстранов? – user1352042
Если вам нравится, то, конечно, вы могли бы добавить 6 подзонов в представление содержимого окна. «NSViewController» обычно управляет одним представлением, которое может быть корнем иерархии. Если вы собираетесь инкапсулировать представление сетки в отдельный NIB, тогда имеет смысл иметь собственный контроллер представления и загрузить этот NIB. Если вы сетка в значительной степени одноразовая, которая будет использоваться только с одним окном, тогда вы можете просто иметь оконный контроллер для управления всем в окне. –