gpt4 book ai didi

cocoa - NSWindow 不接受拖放文件

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

我正在尝试创建一个我创建的窗口来接受从取景器拖放到其上的文件,当我尝试将文件拖到窗口上时发生的所有情况都是它会弹回到桌面上的位置。显然我没有设置正确的东西。

NSWindowController:initWithWindow:里面我正在做:

    [self.window registerForDraggedTypes:[NSArray arrayWithObjects:NSFilenamesPboardType, nil]]; 

我也尝试过将这条线放入 View 中,但没有成功。我缺少什么?我还需要在 .xib 文件中设置一些内容吗?

我需要将 -(BOOL)performDragOperation: 函数放在哪里?那是在我的自定义 NSWindowController 类中吗?这就是失败的原因吗?

最佳答案

您是否遵循(或阅读)documentation ?相关部分的标题是“接收拖动操作”。

最重要的是,对于一般 View (或​​窗口),您需要实现 -draggingEntered: 作为第一步,并返回正确的 NSDragOperation (或至少不是 NSDragOperationNone )来“验证”建议的放置。如果不回答这个问题,甚至不会允许放置(因此您永远不会收到 -prepareForDragOperation:、-performDragOperation: 或 -concludeDragOperation:)。

其他需要考虑的事情:您真的希望整个窗口充当拖动目的地吗?更常见的是,最好使用特定 View ,以便在调用 -draggingUpdated: 时向用户提供视觉反馈。

关于cocoa - NSWindow 不接受拖放文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7868899/

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