0

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

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

4

2 回答 2

0

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

于 2012-05-16T19:54:53.940 回答
0

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

于 2012-05-16T02:02:04.380 回答