プログラムで 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」は、Interface Builder の Window の Content View に接続された、アウトレットとして指定された NSView です。
マトリックスはまったく表示されません。予想どおり、フレーム サイズが (0,0,100,100) であることをログに出力します。
私は何を間違っていますか?
タイトルが示すように、Xcode 3.2.1 を使用して、Snow Leopard マシンでこれを行っています。