Atoll/DynamicIsland/extensions/NSMenu+AssociatedObject.swift
2025-12-08 13:29:25 +05:30

21 lines
484 B
Swift

//
// NSMenu+AssociatedObject.swift
// DynamicIsland
//
// Retains menu action targets using associated objects.
//
import AppKit
private final class MenuActionBox: NSObject {
let target: AnyObject
init(target: AnyObject) { self.target = target }
}
extension NSMenu {
private static let retainedAction = AssociatedObject<MenuActionBox>()
func retainActionTarget(_ target: AnyObject) {
NSMenu.retainedAction[self] = MenuActionBox(target: target)
}
}