我有一个带有 NSTableColumn 的 NSTableView,里面有一个 NSButtonCell(一个复选框),每次添加一行时都会生成一个新的 NSButtonCell 实例,我在 IB 中配置了它。但是,我很好奇为什么在下面的代码块中第二个 NSLog 返回 0。
NSLog(@"%ld", (long)[[self.tableView preparedCellAtColumn:0 row:0]state]);
[[self.tableView preparedCellAtColumn:0 row:0]setState:1];
NSLog(@"%ld", (long)[[self.tableView preparedCellAtColumn:0 row:0]state]);
它返回 0 的事实意味着我正在向 NSButtonCell 的实例发送消息,对吗?那么为什么 setState: 不改变第二个 NSLog 的返回值呢?