【问题标题】:Move controls with the mouse in Cocoa在 Cocoa 中使用鼠标移动控件
【发布时间】:2012-05-15 07:01:31
【问题描述】:

我想在 Cocoa 中构建一个简单的表单设计器,并且需要使用鼠标在表单上移动控件(单击、按住、移动、释放)。

我是否需要从所有控件类继承新类来拦截这些事件?有没有办法为任何控件通用地实现它?

【问题讨论】:

    标签: cocoa events mouse


    【解决方案1】:

    一种方法可能是使用单个大型自定义视图来填充控件所在的所有空间。实施必要的方法以在此视图中实现鼠标事件,对控件视图进行命中检测并四处移动它们。这种方法只需要 NSView 的 1 个自定义子类,您可以使用任何想要移动的视图或控件,而无需对其进行子类化。

    【讨论】:

      【解决方案2】:

      编写自定义视图以包含控件。覆盖-hitTest: 以忽略控件并返回self。然后,当您收到鼠标事件时,找出它们适用于哪个控件并酌情移动。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-29
        • 1970-01-01
        • 2016-06-23
        相关资源
        最近更新 更多