【问题标题】:NSButtonCell as Checkbox in a NSTableVIew don't get selectedNSButtonCell 作为 NSTableVIew 中的复选框不会被选中
【发布时间】:2011-05-17 20:13:27
【问题描述】:

我有一个用于多选目的的 NSTableVIew,它有两列,第一列以 NSButtonCell 作为复选框,另一列作为标题。

这个想法是检查要添加到数组后面的项目。

问题是当我单击复选框时,复选框不会改变其状态。我尝试附加一个 IBAction,但发送方是表视图而不是复选框

关于如何实现这种功能的任何想法(或链接)?

【问题讨论】:

  • 这里没什么好说的。你是如何提供 NSTableView 数据的?

标签: objective-c cocoa nstableview nsbutton nsbuttoncell


【解决方案1】:

假设您使用的是NSTableViewDataSource,您需要实现三种方法:

- (void)tableView:(NSTableView *)aTableView setObjectValue:(id)anObject forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView

当复选框被点击时,第一个方法被调用。如果 aTableColumn 有您的复选框,您将保存新状态,即 [anObject boolValue]

当表格需要画一行时,调用第二种方法。当表格列是您的复选框列时,返回您在第一种方法中保存的状态。

最后一个方法告诉表格视图会有多少行。

更多详情请参阅the table data source documentation,但我已经在这里做了很多总结。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 2012-10-29
    • 1970-01-01
    • 2012-01-21
    • 1970-01-01
    • 2017-06-07
    • 1970-01-01
    相关资源
    最近更新 更多