所有
我有一个NSTableView以及在NSWindow中显示的三个NSTextFields。 (在IB中)。 该实体的设计如下
Entity: Data
Attributes:
Title String
URL String
UserName String
Password String
我已成功将NSArrayController绑定到managedObjectContext,并将NSTableView绑定到arrayController的Title属性,NSTableView可以正确显示所有标题。
我想实现以下任务:
When user click one of the row in the NSTableView, the rest of the three NSTextFields can show the records of that row, respectively URL< username and password.
所以我对URL部分执行以下操作
将NSTextField绑定到NSArrayController的selection.URL
当我运行程序时,它会出错,但是,如果我取消选中绑定属性中的“不适用键的引发”,则可以成功启动程序,并且可以在文本中正确显示值领域。任何人都可以解释原因吗?
错误说:
[<NSTableView 0x102240d60> valueForUndefinedKey:]: this class is not key value coding-compliant for the key URL.
以下是错误日志的一部分:
2012-01-17 11:52:57.533 Quills[98683:407] An uncaught exception was raised 2012-01-17 11:52:57.534 Quills[98683:407] [<NSTableView 0x102240d60> valueForUndefinedKey:]: this class is not key value coding-compliant for the key URL. 2012-01-17 11:52:57.540 Quills[98683:407] ( 0 CoreFoundation 0x00007fff8abd2286 __exceptionPreprocess + 198 1 libobjc.A.dylib 0x00007fff8d84cd5e objc_exception_throw + 43 2 CoreFoundation 0x00007fff8ac5c4c9 -[NSException raise] + 9 3 Foundation 0x00007fff8d1e8783 -[NSObject(NSKeyValueCoding) valueForUndefinedKey:]
+ 240 4 Foundation 0x00007fff8d11f462 _NSGetUsingKeyValueGetter + 108 5 Foundation 0x00007fff8d11f3e9 -[NSObject(NSKeyValueCoding) valueForKey:] + 392 6 Foundation 0x00007fff8d13ee76
-[NSObject(NSKeyValueCoding) valueForKeyPath:] + 348 7 AppKit 0x00007fff85ab33f1 -[NSArrayController
_multipleValueForKeyPath:atIndex:] + 84 8 AppKit 0x00007fff85ab24e5 -[NSArrayController _singleValueForKeyPath:] + 151 9 AppKit 0x00007fff8581909a
-[_NSControllerObjectProxy valueForKeyPath:] + 77 10 Foundation 0x00007fff8d13ee39 -[NSObject(NSKeyValueCoding) valueForKeyPath:] + 287 11 AppKit 0x00007fff85818f46
-[NSBinder _valueForKeyPath:ofObject:mode:raisesForNotApplicableKeys:] + 654 12 AppKit 0x00007fff85818c30 -[NSBinder valueForBinding:resolveMarkersToPlaceholders:] + 171 13 AppKit 0x00007fff85a1cc92 -[NSValueBinder
_referenceBindingValue] + 31 14 AppKit 0x00007fff85a1caa3 -[NSValueBinder
_adjustObject:mode:observedController:observedKeyPath:context:editableState:adjustState:]
+ 647 15 AppKit 0x00007fff85a1c788 -[NSValueBinder _observeValueForKeyPath:ofObject:context:] + 303 16 AppKit 0x00007fff85a345af
-[NSTextValueBinder _observeValueForKeyPath:ofObject:context:] + 43 17 AppKit 0x00007fff8580abdb
-[NSObject(NSKeyValueBindingCreation) bind:toObject:withKeyPath:options:] + 591
答案 0 :(得分:0)
除了使用NSOutlineView和NSTreeController之外,我遇到了同样的问题。
我的问题最终是我将NSTreeController的内容插件连接到我的NSOutlineView。一旦我删除它,对选择的引用就开始起作用了。
我怀疑你可能已经做了类似的事情,因为你的错误说NSTableView缺少密钥而不是NSManagedObject。