我正在尝试循环并以编程方式制作一个由 256 个 NSButton(16x16)组成的网格。我到目前为止的代码如下。这是在我的 Mac 应用程序的 Objective-C 中。因此,我正在记录以查看单击按钮时获得的标签,但每次都会返回相同的标签。
我希望它使每个按钮从左到右,从上到下为 1-256。这段代码成功地将它们加载到我的视图中,但是标签是错误的。
#define N_ROWS 16
#define N_COLS 16
int btnSpaceDifference = 1;
int btnSpacing = N_ROWS + btnSpaceDifference;
for (int j = 0; j < N_ROWS; j++) {
for (int i = 0; i < N_COLS; i++) {
paintPixel = [[[NSButton alloc] initWithFrame:NSMakeRect(10 + (i * btnSpacing), 10 + (j * btnSpacing), 16, 16)] autorelease];
[paintPixel setTitle:@""];
[paintPixel setBezelStyle:NSBorderlessWindowMask];
[paintPixel setTag:j + i * N_ROWS + 1];
[paintPixel setAction:@selector(btnPaintAction:)];
[[[box.tabViewItems objectAtIndex:0]view] addSubview:paintPixel];
}
}
-(void)btnPaintAction:(id)sender{
NSLog(@"%ld", paintPixel.tag);
}