问题标签 [lsuielement]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - 如何隐藏 Dock 图标
我想优先隐藏 Dock 图标并显示NSStatusItem
. 我可以创建 StatusItem 但我不知道如何从 Dock 中删除图标。:-/
有任何想法吗?
macos - LSUIElement 不工作
我有一个在 Info.plist 中有 LSUIElement = 1 的应用程序。当我运行应用程序时,会为其创建一个停靠项和顶级菜单栏。为什么?
编辑:
我正在使用一个调用 TransformProcessType() 的库,破坏了我的 Info.plist 配置。
macos - 将 LSUIElement 转换为前台应用程序
我有一个必须一直运行的应用程序(如果用户同意这一点)。
当用户退出应用程序时,我将前台应用程序转换为 LSUIElement(应用程序只有一个菜单栏图标,停靠图标和菜单消失)。
我在菜单项中有一个选项可以正常工作并将 LSUIElement 转换为前台应用程序(我使用函数[NSApp setActivationPolicy:NSApplicationActivationPolicyRegular]
和[NSApp activateIgnoringOtherApps:YES]
)。
当用户双击应用程序时出现我的问题。我[NSApp setActivationPolicy:NSApplicationActivationPolicyRegular]
在委托方法中再次使用了applicationWillUnhide:(NSNotification *)notification
,除了没有出现的菜单之外,一切都很好。如果我去另一个应用程序,然后我回来菜单就会出现。我尝试了不同的方法,但我找不到一个好的方法。
我想知道当用户双击应用程序时调用的委托方法,或者NSApplication
在那一刻调用的函数是什么,因为我认为在函数中使用setActivationPolicy:
该applicationWillUnhide
函数为时已晚。
macos - 隐藏窗口 Swift
有没有办法让 OS X 应用程序对用户隐藏应用程序(例如,当它打开时不在 Dock 上并且只在后台运行)。我知道有一种方法可以制作隐藏 Python 窗口之类的东西,但我可以快速完成吗?
macos - OS X - 如何检测应用程序何时在登录时以隐藏状态启动?
我的后台应用程序(LSUIElement
模式)在启动时会短暂显示一个窗口,让用户知道它已经启动。
当应用程序作为登录项启动时,一些用户选择通过选中用户和组控制面板的登录项中的“隐藏”选项来隐藏此启动窗口。
虽然此隐藏选项有效地隐藏了启动窗口,但它也隐藏了我的应用程序显示其窗口的任何进一步尝试,除非它使自己成为前端(活动)应用程序,由于此应用程序的性质,这通常是不希望的.
因此,我需要了解我的应用程序是否以这种隐藏模式启动,以便它可以短暂地把自己带到前面。
(我不喜欢总是在启动时激活应用程序,因为它会导致轻微的闪烁,我希望在正常(即未隐藏)启动时避免这种闪烁。)
我还检查了Detect that os x app was started as login item? ,但是由于 LSUIElement 应用程序根本不会调用 applicationWillBecomeActive: 除非它们自己激活,这对我没有帮助。
swift - 如何使我的应用程序表现得像我正在使用 Swift 在运行时更改 Application is agent(UIElement)?
我正在编写一个NSPopover
位于菜单栏右侧的 Mac 应用程序(Application is agent(UIElement)
设置为YES
)。我允许用户通过单击并向下拖动来分离弹出框,这会将应用程序置于窗口内。这工作正常;但是,当应用程序被拖出菜单栏并变成一个窗口时,我希望我的应用程序的图标出现在 Dock 中,并在菜单栏的左侧显示应用程序特定的菜单,就好像Application is agent(UIElement)
设置为NO
。相反,当窗口关闭并且应用程序返回到菜单栏中的弹出窗口时,我希望我的应用程序的图标从停靠栏中消失,并且不再在菜单栏的左侧显示应用程序特定的菜单(Application is agent(UIElement)
设置回到YES
)。
从这个问题,我了解到Application is agent(UIElement)
在运行时更改是不可能的。然而,给出的答案是在 Objective-C 中,最后一个函数似乎从 OS X 10.9 开始贬值。如何使我的应用程序具有与Application is agent(UIElement)
使用 Swift 在运行时更改相同的行为?
我知道显示应用windowDidBecomeMain
程序图标/菜单栏菜单会发生在windowWillClose
.
谢谢。
xcode - 具有两个依赖项目和 CocoaPods 的 Xcode 工作区
我有一个项目,它包含一个 PrefPane 和一个包含 LSUIElement 的 .app 包。基本上,用户安装 prefpane,prefpane 将包含的 .app 添加到登录项(如果未运行,则启动它),以便项目的“守护程序”部分始终运行(当然,如果从 prefpane 启用。
现在,项目结构有点混乱,prefpane 项目中有一个“cp”构建阶段,它将 .app 复制到 Contents/Resources。由于这不会在将 .app 复制到 prefpane 之前自动负责重建 .app,因此这不太理想。
现在我想将 Sparkle 添加到组合中,所以我创建了一个指向“守护程序”.app 项目的 podfile,因为这样就可以每天进行背景检查。这将创建一个 xcworkspace,在构建守护程序时可以正确处理 Sparkle 依赖项。
现在,我也想将 PrefPane 项目添加到工作区,以便可以一起构建所有内容。但是,如果两个 .xcproject 都位于工作区的根级别,就在 Pods 项目旁边,我无法将 Daemon .app 目标添加为 PrefPane 的依赖项。我首先必须将守护进程的项目拖到 prefpane 项目的“下方”,这会创建一个“副本”/另一个引用。现在我可以将守护程序的 .app 目标添加为依赖项,还可以将 .app 添加到 Copy Files 阶段。但是当我构建工作区时,只构建了 .app 项目和 cocoapods。prefpane 目标在清洁和重建后保持红色。
这里发生了什么?