单击以编程方式定义的 NSPopUpButton 时出错
Posted
技术标签:
【中文标题】单击以编程方式定义的 NSPopUpButton 时出错【英文标题】:Error when clicking into a programmatically-defined NSPopUpButton 【发布时间】:2013-03-23 10:44:05 【问题描述】:此错误仅发生特定时间(在创建新文档后)。如果我保存并重新打开,它可以工作。任何的想法?有人有同样的错误吗?
2013-03-23 11:36:52.977 Demiurge[97164:303] *** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]
2013-03-23 11:36:52.979 Demiurge[97164:303] (
0 CoreFoundation 0x00007fff89814b06 __exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff833c53f0 objc_exception_throw + 43
2 CoreFoundation 0x00007fff897d91d7 -[__NSPlaceholderDictionary initWithObjects:forKeys:count:] + 119
3 CoreFoundation 0x00007fff897e76bb +[NSDictionary dictionaryWithObject:forKey:] + 59
4 AppKit 0x00007fff85b428c4 -[NSPopUpButtonCell _menuLocationForEvent:inCellFrame:ofView:] + 581
5 AppKit 0x00007fff85b430fd -[NSPopUpButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 132
6 AppKit 0x00007fff857cbbcc -[NSControl mouseDown:] + 820
7 AppKit 0x00007fff857c353e -[NSWindow sendEvent:] + 6853
8 AppKit 0x00007fff857bf674 -[NSApplication sendEvent:] + 5761
9 AppKit 0x00007fff856d524a -[NSApplication run] + 636
10 AppKit 0x00007fff85679c06 NSApplicationMain + 869
11 Demiurge 0x0000000100001772 main + 34
12 libdyld.dylib 0x00007fff83d377e1 start + 0
13 ??? 0x0000000000000003 0x0 + 3
)
谢谢!
【问题讨论】:
【参考方案1】:NSDictionaries 中不能有 nil。看起来恢复自动保存状态已损坏。不要将 autosaveId 分配给按钮或形成正确的占位符字典,其中没有 nils。
【讨论】:
以上是关于单击以编程方式定义的 NSPopUpButton 时出错的主要内容,如果未能解决你的问题,请参考以下文章
如何将 NSPopUpButton 与测量单位选择连接到 NSTextField 的呈现方式?