我有一个简单的Mac应用程序,在打开文档时收到以下错误: 无法在(PKMPDFView)上设置(allowsDragging)用户定义的检查属性:[setValue:forUndefinedKey:]:此类与键allowDragging的键值编码不兼容。
如果我拦截了“设置”尝试,我会发现它是在笔尖加载期间源自方法-[NSIBUserDefinedRuntimeAttributesConnector EstablishmentConnection] 的。
完整跟踪:
0 PDFApp 0x0000000100003592 -[PKMPDFView setValue:forUndefinedKey:] + 49
1 Foundation 0x00007fff309b8dde -[NSObject(NSKeyValueCoding) setValue:forKey:] + 331
2 AppKit 0x00007fff2c08af15 -[NSView setValue:forKeyPath:] + 394
3 AppKit 0x00007fff2c00d029 -[NSIBUserDefinedRuntimeAttributesConnector establishConnection] + 637
4 AppKit 0x00007fff2bdd9719 -[NSIBObjectData nibInstantiateWithOwner:options:topLevelObjects:] + 1430
5 AppKit 0x00007fff2bdd0991 loadNib + 435
6 AppKit 0x00007fff2bdcfeb5 +[NSBundle(NSNibLoading) _loadNibFile:nameTable:options:withZone:ownerBundle:] + 696
7 AppKit 0x00007fff2c005aba +[NSBundle(NSNibLoadingInternal) _loadNibFile:externalNameTable:options:withZone:] + 150
8 AppKit 0x00007fff2c005893 -[NSWindowController loadWindow] + 322
9 AppKit 0x00007fff2be18cf5 -[NSWindowController window] + 84
10 AppKit 0x00007fff2bfd8134 -[NSWindowController showWindow:] + 36
11 AppKit 0x00007fff2be18c7a -[NSDocument showWindows] + 116
12 PDFApp 0x0000000100002e75 -[PKMPDFDocument showWindows] + 50
13 AppKit 0x00007fff2c35f13e __80-[NSDocumentController openDocumentWithContentsOfURL:display:completionHandler:]_block_invoke.1039 + 182
14 AppKit 0x00007fff2c36ef70 ___NSMainRunLoopPerformBlock_block_invoke + 25
15 CoreFoundation 0x00007fff2e897a3c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
16 CoreFoundation 0x00007fff2e87a973 __CFRunLoopDoBlocks + 275
17 CoreFoundation 0x00007fff2e879ffe __CFRunLoopRun + 1278
18 CoreFoundation 0x00007fff2e879867 CFRunLoopRunSpecific + 487
19 HIToolbox 0x00007fff2db59d96 RunCurrentEventLoopInMode + 286
20 HIToolbox 0x00007fff2db59b06 ReceiveNextEventCommon + 613
21 HIToolbox 0x00007fff2db59884 _BlockUntilNextEventMatchingListInModeWithFilter + 64
22 AppKit 0x00007fff2be09a73 _DPSNextEvent + 2085
23 AppKit 0x00007fff2c59fe34 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 3044
24 AppKit 0x00007fff2bdfe885 -[NSApplication run] + 764
25 AppKit 0x00007fff2bdcda72 NSApplicationMain + 804
26 libdyld.dylib 0x00007fff56848015 start + 1
让我感到困惑的是,PKMPDFView
是NSView
的直接子类,并且在正在加载的.xib文件中没有与之关联的用户定义属性。该视图也没有在.xib中定义的出口,而只是其文档中的引用出口(contentView)。在我的开发目录中运行find / grep不会在任何地方找到“ allowsDragging”的实例。同样,使用字符串实用程序不会在生成的应用程序中显示“ allowsDragging”。
我尝试了所有标准项目的清洁操作,但症状没有改变。
此刻,我很想简单地重写setValue:forUndefinedKey:
并忘记它,但是我仍然很好奇。是否有人知道这是哪里来的信息或猜测?
(这很重要,这是macOS 10.13.6上的Xcode 10.1。)