По какой-то причине NSButtonCell для моего представления таблицы передает неправильный объект в качестве параметра. Я пытаюсь прочитать тег NSButtonCell после его нажатия.Проблемы с действием NSButtonCell
Вот упрощенная версия моего кода:
- (int)numberOfRowsInTableView:(NSTableView *)aTableView {
return 3;
}
- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex {
[aCell setTitle:@"Hello"];
[aCell setTag:100];
}
- (void)buttonClick:(id)sender {
NSLog(@"THE TAG %d",[sender tag]);
NSLog(@"THE TITLE: %@",[sender title]);
}
- (void)refreshColumns {
for (int c = 0; c < 2; c++) {
NSTableColumn *column = [[theTable tableColumns] objectAtIndex:(c)];
NSButtonCell* cell = [[NSButtonCell alloc] init];
[cell setBezelStyle:NSSmallSquareBezelStyle];
[cell setLineBreakMode:NSLineBreakByTruncatingTail];
[cell setTarget:self];
[cell setAction:@selector(buttonClick:)];
[column setDataCell:cell];
}
}
- (void)awakeFromNib {
[self refreshColumns];
}
resut из консоли говорит:
THE TAG: 0
-[NSTableView title]: unrecognized selector sent to instance 0x100132480
На первый взгляд (для меня по крайней мере), это должно сказать, что тег 100, но это не так. Также (как видно из второго вывода консоли), кажется, что параметр, отправляемый в селектор «buttonClick», неверен, я считаю, что он должен получать NSButtonCell, но он получает NSTableView.
спасибо, что помогло много –