gpt4 book ai didi

objective-c - NSButtonCell NSSwitchButton 不显示复选框

转载 作者:行者123 更新时间:2023-12-03 17:49:26 24 4
gpt4 key购买 nike

下面代码中的 NSButtonCell 工作正常,但单击时不会显示复选图标。有什么想法吗?

  - (NSCell *)outlineView:(NSOutlineView *)outlineView dataCellForTableColumn:(NSTableColumn *)tableColumn item:(id)item {

if ([[tableColumn identifier] isEqualToString:@"select"]) {

NSButtonCell *cell = [[NSButtonCell alloc]init];
[cell setButtonType:NSSwitchButton];
[cell setTarget:self];
[cell setAction:@selector(checkboxChanged:)];
[cell setTitle:@""];

return cell;

} else {
NSCell *cell = [tableColumn dataCell];
return cell;
}
}

这里是操作代码:

- (IBAction)checkboxChanged:(id)sender {

NSButtonCell *aCell = [[sender tableColumnWithIdentifier:@"select"]
dataCellForRow:[sender selectedRow]];


if ([aCell state] == NSOnState) {

NSLog(@"ON");
[aCell setState:NSOffState];


} else {

NSLog(@"OFF");
[aCell setState:NSOnState];
}

}

最佳答案

我不确定为什么您的第一个解决方案不起作用 - 也许您没有连接您的代表?请注意,数据源和委托(delegate)是两个独立的事物。

您在答案中实现的方法(即数据源)不是执行此操作的正确位置。数据源,特别是 numberOfRowsInTableView:tableView:objectValueForTableColumn:row:,应该返回所呈现的内容,而不是创建 View /单元格对象。

我建议您在 xib 中创建并配置 NSButtonCell(如果您有 NSButtonCell),或者在创建表格 View 及其列的同一位置创建和配置 NSButtonCell,这也是设置每列单元格的正确位置。

关于objective-c - NSButtonCell NSSwitchButton 不显示复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31599502/

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