gpt4 book ai didi

objective-c - NSTableView 如何通过绑定(bind)修改 NSArrayController 的选择?

转载 作者:太空狗 更新时间:2023-10-30 03:59:56 24 4
gpt4 key购买 nike

假设我有以下情况:

alt text

当我在 NSTableView 中选择不同的行时,它会神奇地更新 NSArrayController (PersonController) 选择。 NSTableView 是怎么做到的?它会做这样的事情吗:

- (void)bind:(NSString *)binding toObject:(id)observableController withKeyPath:(NSString *)keyPath options:(NSDictionary *)options;
{
if([observableController isKindOfClass:[NSArrayController class]]){
// got the NSArrayController, which can be used to change selection
} else {
// not an NSArrayController, don't try to change selection
}

//...
}

我问是因为我正在实现我自己的可绑定(bind) NSControl,我希望它像 NSTableView 一样修改绑定(bind) NSArrayController 的选择。

最佳答案

凭直觉,我覆盖了 NSTableViewNSTableColumn 对象上的 bind:toObject:withKeyPath:options: 并让它们记录下来他们的绑定(bind)。这是输出:

Binding NSTableColumn["Last Name"].value to key path "arrangedObjects.lastName" of NSArrayController: 0x215fc0Binding NSTable.content to key path "arrangedObjects" of NSArrayController: 0x215fc0Binding NSTable.selectionIndexes to key path "selectionIndexes" of NSArrayController: 0x215fc0Binding NSTable.sortDescriptors to key path "sortDescriptors" of NSArrayController: 0x215fc0Binding NSTableColumn["First Name"].value to key path "arrangedObjects.firstName" of NSArrayController: 0x215fc0

尽管我所做的唯一绑定(bind)是对 NSTableColumn 对象的“值”,但看起来 IB 正在自动添加其他绑定(bind)。 NSTableView 能够修改 NSArrayController 选择,因为它在 IB 中自动绑定(bind)了 selectionIndexes

这在 NSTableView Bindings Reference 中得到确认,对于 selectionIndexessortDescriptors

关于objective-c - NSTableView 如何通过绑定(bind)修改 NSArrayController 的选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2084996/

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