我正在尝试以编程方式创建 NSImageCell 原型的 NSMatrix (如果您可以通过 Interface Builder 帮助我做到这一点,请在此处回答我的客人)
我创建了一个新的空项目。在其中,一个普通对象(NSObject 的子类)有这个代码(并且只有这个代码):
- (void) awakeFromNib {
NSRect f = view.bounds;
NSMatrix* matrix = [[NSMatrix alloc] initWithFrame:f mode:NSListModeMatrix cellClass:[NSImageCell class] numberOfRows:1 numberOfColumns:1];
[matrix setCellSize:NSMakeSize(100, 100)];
[matrix sizeToCells];
[matrix setNeedsDisplay:YES];
[view addSubview:[matrix autorelease]];
[view setNeedsDisplay:YES];
NSLog(@"Matrix frame: %@", NSStringFromRect(matrix.frame));
}
"view" 是一个指定为插座的 NSView,连接到 Interface Builder 中窗口的内容视图。
矩阵根本不显示。正如预期的那样,它打印以记录帧大小为(0,0,100,100)。
我究竟做错了什么?
正如标题所述,我正在使用 Xcode 3.2.1 在 Snow Leopard 机器上执行此操作。