Cocoa 取消选中绑定NSTableview';s列

Cocoa 取消选中绑定NSTableview';s列,cocoa,nstableview,osx-mavericks,cocoa-bindings,nsbuttoncell,Cocoa,Nstableview,Osx Mavericks,Cocoa Bindings,Nsbuttoncell,我正在使用,由创建,它显示了在NSTableView中创建复选框以及如何绑定它们。我是OSX开发的新手,正在努力了解它是如何工作的 该项目基本上是绑定到阵列控制器的NSTableView列中的复选框 出于某种原因,当我取消选中其中一个复选框时,控制台窗口上会显示以下消息: 2014-04-03 04:22:55.579 MyApp[5735:303] Error setting value for key path objectValue.selected of object <NSAut

我正在使用,由创建,它显示了在NSTableView中创建复选框以及如何绑定它们。我是OSX开发的新手,正在努力了解它是如何工作的

该项目基本上是绑定到阵列控制器的NSTableView列中的复选框

出于某种原因,当我取消选中其中一个复选框时,控制台窗口上会显示以下消息:

2014-04-03 04:22:55.579 MyApp[5735:303] Error setting value for key path objectValue.selected of object <NSAutounbinder: 0x600000258120 - a nonretaining proxy for <NSTableCellView: 0x60000019f890>> (from bound object <NSButton: 0x60000015efb0>): [<__NSDictionaryI 0x61000006f540> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key selected.
2014-04-03 04:22:55.581 MyApp[5735:303] (
    0   CoreFoundation                      0x00007fff87b3a25c __exceptionPreprocess + 172
    1   libobjc.A.dylib                     0x00007fff8a3f6e75 objc_exception_throw + 43
    2   CoreFoundation                      0x00007fff87b3a038 +[NSException raise:format:arguments:] + 104
    3   AppKit                              0x00007fff927936c5 -[NSBinder _setValue:forKeyPath:ofObject:mode:validateImmediately:raisesForNotApplicableKeys:error:] + 837
    4   AppKit                              0x00007fff92793327 -[NSBinder setValue:forBinding:error:] + 245
    5   AppKit                              0x00007fff92c8b4ee -[NSValueBinder _applyObjectValue:forBinding:canRecoverFromErrors:handleErrors:typeOfAlert:discardEditingCallback:otherCallback:callbackContextInfo:didRunAlert:] + 194
    6   AppKit                              0x00007fff92c8b871 -[NSValueBinder applyDisplayedValueHandleErrors:typeOfAlert:canRecoverFromErrors:discardEditingCallback:otherCallback:callbackContextInfo:didRunAlert:error:] + 621
    7   AppKit                              0x00007fff927c5107 -[NSValueBinder performAction:] + 288
    8   AppKit                              0x00007fff927c4fc5 -[_NSBindingAdaptor _objectDidTriggerAction:bindingAdaptor:] + 133
    9   AppKit                              0x00007fff927531a0 -[NSControl sendAction:to:] + 56
    10  AppKit                              0x00007fff9279fced -[NSCell _sendActionFrom:] + 128
    11  AppKit                              0x00007fff927b96c5 -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 2316
    12  AppKit                              0x00007fff927b8a97 -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 487
    13  AppKit                              0x00007fff927b81ad -[NSControl mouseDown:] + 706
    14  AppKit                              0x00007fff92739b48 -[NSWindow sendEvent:] + 11296
    15  AppKit                              0x00007fff926d86e4 -[NSApplication sendEvent:] + 2021
    16  AppKit                              0x00007fff92528b89 -[NSApplication run] + 646
    17  AppKit                              0x00007fff92513913 NSApplicationMain + 940
    18  MyApp                               0x0000000100049132 main + 34
    19  libdyld.dylib                       0x00007fff85ffe5fd start + 1
2014-04-03 04:22:55.579 MyApp[5735:303]设置键路径objectValue的值时出错。所选对象的(来自绑定对象):[setValue:forUndefinedKey:]:此类不符合所选键的键值编码。
2014-04-03 04:22:55.581 MyApp[5735:303](
0 CoreFoundation 0x00007fff87b3a25c例外预处理+172
1 libobjc.A.dylib 0x00007fff8a3f6e75 objc_异常_抛出+43
2 CoreFoundation 0x00007fff87b3a038+[N异常提升:格式:参数:][104
3应用工具包0x00007fff927936c5-[NSBinder\u设置值:forKeyPath:ofObject:mode:ValidateMiddly:RaisesforNotAppliedKey:error:+837
4 AppKit 0x00007fff92793327-[NSBinder设置值:用于绑定:错误:][245
5 AppKit 0x00007fff92c8b4ee-[NSValueBinder\u applyObjectValue:forBinding:canRecoverFromErrors:handleErrors:typeOfAlert:discardEditingCallback:otherCallback:callbackContextInfo:didRunAlert:+194
6 AppKit 0x00007fff92c8b871-[NSValueBinder应用程序显示ValueHandleErrors:typeOfAlert:canRecoverFromErrors:discardEditingCallback:OtherCallbackContextInfo:didRunAlert:error:+621
7应用套件0x00007fff927c5107-[NSValueBinder性能:][288
8应用套件0x00007fff927c4fc5-[\u NSBindingAdapter\u objectDidTriggerAction:BindingAdapter:][133
9应用套件0x00007fff927531a0-[NSControl sendAction:to::::+56
10应用套件0x00007fff9279fced-[NSCell\u sendActionFrom:][128
11应用套件0x00007fff927b96c5-[NSCell trackMouse:inRect:ofView:untillmouseup:+2316
12应用套件0x00007fff927b8a97-[NSButtonCell轨迹鼠标:输入:ofView:UntillMouseUp:+487
13应用套件0x00007fff927b81ad-[NSControl mouseDown:][706
14应用套件0x00007fff92739b48-[NSWindow sendEvent::+11296
15应用套件0x00007fff926d86e4-[NSApplication sendEvent::+2021
16应用程序套件0x00007fff92528b89-[N应用程序运行]+646
17应用套件0x00007fff92513913 NSApplicationMain+940
18 MyApp 0x0000000100049132主管道+34
19 libdyld.dylib 0x00007FFF85FF5FD启动+1
选中复选框后,此消息不会显示在控制台上


你们能告诉我怎么了吗?

我更新了项目的git版本

每当您通过值绑定绑定控件时,它都会调用其getter方法来加载值。而当您尝试修改这些值时,它会尝试调用属性的setter方法。在项目中,字典是硬编码的,因此没有setter方法,这就是您获得“设置键路径objectValue.selected的值时出错”

检查新版本,其中创建了解决setter问题的水果模型


如果您遇到任何问题,请告诉我。

伙计,您真是太棒了!我从您的示例中学到的东西比我读过的关于绑定、表视图和阵列控制器主题的每一篇教程都要多!现在我完全理解了整件事!谢谢!!!!!!!!!!