在我的应用程序中,我想动态创建窗口(NSWindows)并有一个特殊的窗口(这也是一个 NSWindow,我称之为转储空间),我可以在其中拖动其他窗口以关闭它们。
基本上,转储空间应该检测到我何时“放下”一个窗口,以便它可以触发释放和关闭窗口的操作。
可可拖放模型上有什么我可以使用的吗?如果不是,我想知道一些我可以做的解决方法来模拟这些动作。
在我的应用程序中,我想动态创建窗口(NSWindows)并有一个特殊的窗口(这也是一个 NSWindow,我称之为转储空间),我可以在其中拖动其他窗口以关闭它们。
基本上,转储空间应该检测到我何时“放下”一个窗口,以便它可以触发释放和关闭窗口的操作。
可可拖放模型上有什么我可以使用的吗?如果不是,我想知道一些我可以做的解决方法来模拟这些动作。
在您的转储空间类中实现NSDraggingDestination协议,该协议有多个消息来处理拖动操作。在 performDragOperation: 你可以处理你的窗口。我建议在开始拖动窗口的类中实现 NSDraggingSourcemouseDown:
或mouseMoved:
. 通过这种方式,您可以定义自己的粘贴板数据类型来拖动窗口。然后可以在转储空间中使用它来查看实际丢弃的内容并触发您的窗口处理。对于此示例中所需的所有内容,有一个相对复杂的示例。