我是一个 Objective-C/Cocoa 新手,我想知道你是否可以为我提供一些关于我正在编写的第一个 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)加载界面需要在main方法中添加什么?目前 main 方法只调用涉及音频处理和 SOM 算法的方法。我想这里的一般问题是如何连接模型和视图部分。
对于这些幼稚的问题,我深表歉意,并提前感谢您提出任何有助于我取得进展的想法。
谢谢你。