gpt4 book ai didi

cocoa - 在退出时使用 modalWindow 时如何处理 NSButton lockFocus 上的断言失败?

转载 作者:行者123 更新时间:2023-12-03 16:15:09 26 4
gpt4 key购买 nike

windowA 中的按钮的 IBAction 调用 runModalForWindow:windowB

windowB 成为键和模态。

windowB 有一个 popUpWindowDatePicker,它在显示时调用 stopModal,然后 popUpWindowDatePicker 成为 key,而 windowB 放弃 key 并且不是模态的。此时没有任何窗口是模态的。

当 popUpWindowDatePicker 被关闭时,它的 didResignFirstResponder 方法将 bool 值设置为 YES。 windowB 然后成为 key,windowB 的 windowController windowDidBecomeKeyNotification 触发,检查 bool 值,如果是 YES 则调用 runModalForWindow:self .window.

现在windowB是模式和关键。 windowA 仍然打开,但不是 key 。

windowB 有“确定”和“取消”按钮,它们调用:[NSApp stopModalWithCode:returnCode],然后在 windowBorderOut:close

如果使用了 popUpWindowDatePicker,并且然后在使用“确定”或“取消”关闭 windowB 后的任何时间,都会调用涉及“确定”或“取消”按钮的断言失败:

*** 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

如果使用“确定”或“取消”关闭windowB并且未使用popUpWindowDatePicker,则不会出现断言失败。

似乎 windowB 上的序列 runModal-stopModal-runModal-stopModal 与按下按钮上的 lockFocus 失败有关,但我找不到追踪更多的方法来解决这个问题。

有人可以提供任何提示或想法吗?

最佳答案

当我在带有大量文本的 NSTextView 上进行绘图时,我遇到了类似的问题。解决此消息以及与“失去焦点”或调用“错误对象”相关的其他崩溃的方法是:从核心动画层中删除该对象(及其可能具有的任何子对象)。

为了在我的 NSTextView 上执行此操作,我在 UIbuilder(实用程序面板中与核心动画层相对应的最后一个选项卡)上轻松取消选中任何动画。

希望对你有帮助

关于cocoa - 在退出时使用 modalWindow 时如何处理 NSButton lockFocus 上的断言失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3389263/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com