【发布时间】:2012-07-04 04:09:27
【问题描述】:
是否可以使用淡入淡出效果隐藏或取消隐藏 Mac 上的桌面图标? 这可以通过在实际桌面上放置墙纸图像来完成, 这样当点击桌面时,图标就会出现。
这样的方法可以是sandboxed吗?
【问题讨论】:
标签: objective-c xcode macos cocoa osx-lion
是否可以使用淡入淡出效果隐藏或取消隐藏 Mac 上的桌面图标? 这可以通过在实际桌面上放置墙纸图像来完成, 这样当点击桌面时,图标就会出现。
这样的方法可以是sandboxed吗?
【问题讨论】:
标签: objective-c xcode macos cocoa osx-lion
基本方法是使用适当的level 创建无边界NSWindow。 kCGDesktopIconWindowLevelKey 是桌面图标的级别,所以应该可以。
沙盒对此不是问题,因为您实际上并没有删除桌面图标,您只是在它们顶部显示一个窗口。
您可能还想将窗口的collectionBehavior 设置为NSWindowCollectionBehaviorStationary,这样它就不会受到 Exposé 的影响。
【讨论】:
[NSEvent addGlobalMonitorForEventsMatchingMask...] 可能可以检测到桌面上的点击,但是您无法区分背景上的点击和图标上的点击...
我不确定这是否可能,因为:
但如果你可以让它工作,工作流程将是:
【讨论】: