私はループスルーし、256個のNSButtons(16x16)のグリッドをプログラムで作成しようとしています。私がこれまでに持っているコードは以下の通りです。これは私のMacアプリケーションのObjective-Cにあります。だから、私はボタンをクリックしたときにどのタグを取得するのかを確認するためにロギングしていますが、毎回同じタグを返すようにしています。私はすべてのボタンが左から右、上から下へ1-256進むようにしたい。このコードは正常に私のビューにロードされますが、タグは間違っています。あなたが助けてくれることを祈って、感謝します。NSButtonのグリッドを作成するループ?
int TagVal = 1;
for (int j = 0; j < N_ROWS; j++) {
....
[paintPixel setTag:TagVal++];
....
}
変数の増分と
#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);
}
バマー、18分で受け入れられた回答を破ってもまだ十分ではありませんでした – KevinDTimm