一个按钮的IBAction
在窗口A调用runModalForWindow:windowB
。如何在退出时使用modalWindow处理NSButton lockFocus上的断言失败?
windowB成为关键和模态。
窗口B具有呼吁显示stopModal
一个popUpWindowDatePicker,然后popUpWindowDatePicker变得关键,和窗口B辞职键和不是模态。此时没有窗口是模态的。
当popUpWindowDatePicker被取消时,其didResignFirstResponder
方法将布尔值设置为YES。 windowB然后成为关键,并且windowB的windowController windowDidBecomeKeyNotification
触发,检查布尔值,如果是YES调用runModalForWindow:self.window
。
现在windowB是模态和关键。 windowA仍然是开放的,但不是关键。
窗口B有好和取消其呼叫按钮:在窗口B [NSApp stopModalWithCode:returnCode]
然后orderOut:
和close
。
如果使用popUpWindowDatePicker,和然后该窗口B后的任何时间被关闭与好或取消,断言失败被称为涉及好或取消按钮:
*** Assertion failure in -[NSButton lockFocus], /SourceCache/AppKit/AppKit-1038.29/AppKit.subproj/NSView.m:5237
-[NSButton(0x20021cd60) lockFocus] failed with window=0x20021c0c0, windowNumber=-1, [self isHiddenOrHasHiddenAncestor]=0
如果窗口B用Okay或Cancel关闭,并且popUpWindowDatePicker尚未使用,则不存在断言失败。
似乎在窗口B序列runModal-stopModal-runModal-stopModal
参与lockFocus上按下按钮时的失败,但我不能找到一种方法来追踪比这个更来解决这个问题。
任何人都可以提供任何提示或想法吗?
“按钮的方法...”哪一个?按钮有很多方法,'lockFocus'只是其中的一个。 “...按钮没有'lockFocus'设置...”这没有意义,因为'lockFocus'是一个动词,而不是一个属性。你有没有试过用调试器打破异常? – 2010-08-03 03:17:44
我编辑了我的问题,以反映我在按下按钮时指向操作方法,并且在退出时lockFocus不可用。我会尽力打破例外情况,并回报。谢谢。 – lulu 2010-08-03 12:51:00
我已经重新写了我的问题,以尝试更清晰。 – lulu 2010-08-11 18:02:49