gpt4 book ai didi

objective-c - 如何在另一个 NSView 下阻止 NSView 事件?

转载 作者:太空狗 更新时间:2023-10-30 03:38:46 28 4
gpt4 key购买 nike

思路是这样的:

我有一个包含 2 个 NSView 的 NSWindow,我们称它们为 ViewA 和 ViewB。

ViewA 有一个 subview 对象列表,每个对象都有自己的跟踪区域集并处理一个 mouseDown 事件。 ViewB 是隐藏 View ,显示在 ViewA 之上。

问题是当ViewB出现的时候,ViewA还是会收到mouseDown事件。所以当我点击 ViewB 时,ViewB 后面的对象接收到 mouseDown 事件。我想知道是否有任何方法可以在 ViewB 结束时阻止 ViewA 的事件。

我知道我可以移除每个对象的跟踪区域,但它仍然响应 mouseDown 事件。

最佳答案

您可以重写 NSWindow 上的 sendEvent: 方法并测试 'firstResponder',如果它是 ViewA,则不调用 [super sendEvent:event] 这样 ViewA 将不会收到任何事件。

关于objective-c - 如何在另一个 NSView 下阻止 NSView 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8858011/

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