gpt4 book ai didi

objective-c - 在 super View 上获取鼠标按下事件

转载 作者:行者123 更新时间:2023-12-03 18:00:16 24 4
gpt4 key购买 nike

我有一个 NSScrollView ,它的文档 View 是一个名为 MasterPage 的 NSView subview 。在 MasterPage 上,我有一堆(取决于用户输入) subview (来自名为 Page 的类)。它们以网格格式布局。我正在 try catch 鼠标在 MasterPage 上单击的 NSPoint 。它适用于没有 subview 的情况,但如果单击的点位于 subview 的区域内,则 super View 不会注册它。有没有办法做到这一点?我希望这是有道理的。

红色区域在 super View 的 .m 文件中注册鼠标单击。四个 subview 则不然。

The red area registers a mouse click in the superview's .m file. The four subviews do not.

最佳答案

在您的 MasterPage 类中,您可以覆盖 NSView 的 -hitTest:方法并让它返回 self 而不是 Page subview 之一。请参阅Event Handling Guide: The Path of Mouse and Tablet Events .

在此示例项目中,http://www.markdouma.com/developer/SubviewSuperview.zip ,您可以观察日志记录调用以了解 NSView 接收事件。如果按住 Alt/Option 键并单击,白色 View 将覆盖 -hitTest: 并返回自身,从而阻止灰色 View 接收事件。

enter image description here

关于objective-c - 在 super View 上获取鼠标按下事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7504917/

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