【问题标题】:Hide Mac desktop icons with fade effect?隐藏带有淡入淡出效果的 Mac 桌面图标?
【发布时间】:2012-07-04 04:09:27
【问题描述】:

是否可以使用淡入淡出效果隐藏或取消隐藏 Mac 上的桌面图标? 这可以通过在实际桌面上放置墙纸图像来完成, 这样当点击桌面时,图标就会出现。

这样的方法可以是sandboxed吗?

【问题讨论】:

    标签: objective-c xcode macos cocoa osx-lion


    【解决方案1】:

    基本方法是使用适当的level 创建无边界NSWindowkCGDesktopIconWindowLevelKey 是桌面图标的级别,所以应该可以。

    沙盒对此不是问题,因为您实际上并没有删除桌面图标,您只是在它们顶部显示一个窗口。

    您可能还想将窗口的collectionBehavior 设置为NSWindowCollectionBehaviorStationary,这样它就不会受到 Exposé 的影响。

    【讨论】:

    • 哇,甚至还有一个图标级别的变量?那太棒了 !非常感谢您的回答!所以确实有可能 :D 你似乎很有经验,omz,你能否告诉我,当用户双击桌面(而不是图标)时,是否可以再次隐藏图标。非常感谢您的帮助!
    • 我想不出办法。使用[NSEvent addGlobalMonitorForEventsMatchingMask...] 可能可以检测到桌面上的点击,但是您无法区分背景上的点击和图标上的点击...
    • 谢谢。如果它可以那样工作会很棒,但也许我应该做一些像热角这样的事情。
    • 最后一个问题:当用户在桌面上拖动文件时(在拖动事件中),是否可以淡化覆盖。例如:用户想要将文件拖到桌面上,当他将鼠标悬停在桌面上时,图标会淡入。
    • 好吧,要在拖动进入覆盖窗口时显示桌面图标,您只需要在窗口/视图中处理“拖动进入”事件。困难的部分是在拖放操作结束时再次隐藏图标。我不确定这是否可能。
    【解决方案2】:

    我不确定这是否可能,因为:

    1. 覆盖必须在桌面上方,但在新窗口下
    2. 这很可能无法被沙盒化

    但如果你可以让它工作,工作流程将是:

    1. 用户点击按钮(最好是菜单栏,因为此应用实际上没有窗口)
    2. 全屏窗口(禁用 UI 元素,例如菜单栏)淡入,背景图像设置为 Mac 的背景图像
    3. 再次单击该按钮将隐藏窗口

    【讨论】:

    • Mh .. 使用相同的(点击时)系统隐藏/取消隐藏桌面上的图标怎么样,但没有用于淡入淡出的图像覆盖。所以他们才出现。是否有可能让它们出现在桌面上单击,同时仍保留沙盒指南?
    • 我不相信你能把它沙箱化,因为它需要修改关键的 OSX 元素。这是一个链接,developer.apple.com/library/mac/#documentation/Security/…
    • 是的,我知道那个页面。虽然有其他 AppStore 应用程序可以隐藏图标。那么,您认为只有“单击桌面显示”操作是不可沙盒的?
    • 这些应用程序之一的示例是什么?
    猜你喜欢
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    • 2015-07-26
    • 1970-01-01
    • 2011-03-05
    相关资源
    最近更新 更多