【问题标题】:Disabling dock icon for an app in Mac OSX in different way以不同的方式在 Mac OSX 中禁用应用程序的停靠图标
【发布时间】:2011-03-04 12:21:13
【问题描述】:

在 mac osx 中,大多数应用程序都保留一个停靠图标。 但是如果同一个应用的开发者想要隐藏dock图标,那他要怎么隐藏呢?

作为开发人员,我知道“Info.plist”属性文件是隐藏应用程序停靠图标的一种方法。

但是我们没有其他解决方案吗?

我希望应该有一些其他的方法,因为每个人都知道“一个问题有 N 种解决方案”

提前致谢

M@k4mac

【问题讨论】:

  • 作为应用程序开发人员,您为什么要能够控制用户的 Dock?
  • @Cody Gray:有些应用程序设计为在后台运行,而不是在 Dock 中显示它们的图标。
  • @mipadi:啊,我的意思不是通过Info.plist,它专门用于解决该用例。

标签: macos hide dock


【解决方案1】:

如果您正在开发应用程序,您希望在 Info.plist 中将 LSUIElement 设置为 TRUE。

如果您正在运行该应用程序,则可以使用Dockless 之类的程序。

如果您想要多余的选项,请使用 Linux :)

【讨论】:

    【解决方案2】:

    Info.plist 解决方案是从 Dock 中隐藏图标的唯一方法(对于 GUI 应用程序)。

    你想完成什么?如果您提供更多详细信息,也许可以找到解决方案。

    【讨论】:

      【解决方案3】:

      这个 LSUIElement 方法在 10.8 下不再工作

      添加 Carbon.framework make plist Application is agent (UIElement) =1 check

      // this should be called from awakeFromNib method
      if (![[NSUserDefaults standardUserDefaults] boolForKey:@"LaunchAsAgentApp"]) 
      {   ProcessSerialNumber psn = { 0, kCurrentProcess };
      
      // display dock icon
      TransformProcessType(&psn, kProcessTransformToForegroundApplication);
      
      // enable menu bar
      SetSystemUIMode(kUIModeNormal, 0);
      
      // switch to Dock.app
      [[NSWorkspace sharedWorkspace] launchAppWithBundleIdentifier:@"com.apple.dock"    options:NSWorkspaceLaunchDefault additionalEventParamDescriptor:nil launchIdentifier:nil];
      
      // switch back
      [[NSApplication sharedApplication] activateIgnoringOtherApps:TRUE];
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-10
        • 1970-01-01
        • 2012-07-19
        • 1970-01-01
        • 1970-01-01
        • 2012-11-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多