gpt4 book ai didi

swift - 有没有办法使默认的 NSDragOperation 移动并仍然允许复制?

转载 作者:搜寻专家 更新时间:2023-10-31 19:37:57 24 4
gpt4 key购买 nike

在某些应用程序(例如 GarageBand)中,初始拖动操作是移动,如果您在拖动时按下 Option 键,则支持复制。我尝试了几件事,但没有成功。如果在操作掩码中指定了 .Copy,它总是成为默认操作。这可能吗?

    func draggingSession(session: NSDraggingSession, sourceOperationMaskForDraggingContext context: NSDraggingContext) -> NSDragOperation {
if context == NSDraggingContext.OutsideApplication
{
return .None
}
else
{
return [.Move,.Copy]
}
}

最佳答案

您可以检查返回 NSDragOperation 时是否按下了 ALT(Option)键。

例子:

if context == NSDraggingContext.OutsideApplication {
return .None
} else {
// get the current global event object
// and compare its modifier flags with ours
if let event = NSApplication.sharedApplication().currentEvent
where event.modifierFlags.contains(.AlternateKeyMask) {
// ALT key is pressed
return .Copy
}
// ALT key is not pressed
return .Move
}

关于swift - 有没有办法使默认的 NSDragOperation 移动并仍然允许复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38030202/

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