gpt4 book ai didi

objective-c - 更改基于 View 的 NSTableView 中选定的 View

转载 作者:行者123 更新时间:2023-12-03 16:29:13 25 4
gpt4 key购买 nike

使用基于 View 的 NSTableView 时,如何更改所选行的 View ?具体来说,我希望为未选定的行提供一个简单的 NSView 子类,为选定的行提供一个更复杂的 NSView 子类,以便编辑与行项目关联的更多信息。

一个示例是 Things 允许您展开正在编辑的项目的方式,如下所示: http://culturedcode.com/things/

最佳答案

我的猜测是,当选择该行时,您想使用不同的 NSTableCellView 子类。我认为你应该能够做这样的事情:

- (void)tableViewSelectionDidChange:(NSNotification *)notification
{
NSTableView *table = [notification object];
NSIndexSet *allColumns = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, [[table tableColumns] count])];
[table reloadDataForRowIndexes:[table selectedRowIndexes] columnIndexes:allColumns];
}

- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
if ([[tableView selectedRowIndexes] containsIndex:row])
{
// If the row is selected, return an instance of the class for selected views
SelectedTableCellView *selectedView = ...; // Get from makeViewWithIdentifier:
// Set up selectedView
return selectedView;
}
else
{
NonSelectedTableCellView *nonSelectedView = ...; // Get from makeViewWithIdentifier:
// Set up nonSelectedView
return nonSelectedView;
}
}

关于objective-c - 更改基于 View 的 NSTableView 中选定的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10077793/

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