gpt4 book ai didi

objective-c - 更改 NSTableView 中自定义按钮单元格的图像

转载 作者:搜寻专家 更新时间:2023-10-30 20:12:21 26 4
gpt4 key购买 nike

您好,我正在使用一个包含 2 列的 NSTableView甲与乙

A包含数据B 包含按钮

我希望当用户点击表格 View 中的任何按钮时,它的图像必须被更改。

我如何在 tableview 单元格中添加自定义按钮:

NSButtonCell *buttonCell = [[[NSButtonCell alloc] init] autorelease];
[buttonCell setBordered:NO];
[buttonCell setImagePosition:NSImageOnly];
[buttonCell setButtonType:NSMomentaryChangeButton];
[buttonCell setImage:[NSImage imageNamed:@"uncheck.png"]];
[buttonCell setSelectable:TRUE];
[buttonCell setTarget:self];
[buttonCell setAction:@selector(deleteSongContent:)];


[[myTable tableColumnWithIdentifier:@"EditIdentifier"] setDataCell:buttonCell];

当我点击按钮时,选择器方法被触发,但我不明白如何更改按钮单元格的图像。

有什么建议吗!!!!!!!!!

编辑:

当我点击按钮时调用该方法及其工作原理:

-(void)selectButtonsForDeletion:(NSTableView *)tableView 
{
NSEvent *currentEvent = [[tableView window] currentEvent];
int columnIndex = [tableView columnAtPoint:
[tableView convertPoint:
[currentEvent locationInWindow] fromView:nil]];
NSTableColumn *column = [[tableView tableColumns]objectAtIndex:columnIndex];
NSButtonCell *aCell = [[tableView tableColumnWithIdentifier:
[column identifier]]
dataCellForRow:[tableView selectedRow]];


NSInteger index = [[aCell title] intValue];
if(![selectedIndexesArray containsObject:[NSNumber numberWithInt:index]])
{
[aCell setImage:[NSImage imageNamed:@"check.png"]];
[selectedIndexesArray addObject:[NSNumber numberWithInt:index]];
}
else
{
[aCell setImage:[NSImage imageNamed:@"uncheck.png"]];
[selectedIndexesArray removeObjectAtIndex:[selectedIndexesArray indexOfObject:[NSNumber numberWithInt:index]]];
}
}

最佳答案

终于得到了答案:

我发现在下面提到的方法之后:

- (void)tableView: setObjectValue: forTableColumn: row:

这个方法被调用:

-(void)tableView: willDisplayCell: forTableColumn: row:

我应用了我的逻辑,如果检查图像已经应用于按钮,则不要更改它。

关于objective-c - 更改 NSTableView 中自定义按钮单元格的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5141656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com