【发布时间】:2010-05-05 18:34:29
【问题描述】:
如果你打电话
NSRunAlertPanel()
在 Cocoa 的后台进程中,对话不会出现在前面,而是停留在其他窗口的后面。这个post 表明,如果将进程转换为前台进程,则可以将对话置于最前面。但是,如果您将进程保持为后台进程,是否有任何方法可以实现此行为?
【问题讨论】:
如果你打电话
NSRunAlertPanel()
在 Cocoa 的后台进程中,对话不会出现在前面,而是停留在其他窗口的后面。这个post 表明,如果将进程转换为前台进程,则可以将对话置于最前面。但是,如果您将进程保持为后台进程,是否有任何方法可以实现此行为?
【问题讨论】:
你想做什么?后台进程在不使用TransformProcessType的情况下仍然可以显示UI并将自己带到最前面;只需确保您是 LSUIElement,而不是 LSBackgroundOnly(或已弃用的 NS* 等价物)。您通常需要使用 TransformProcessType 的唯一原因是您需要 Dock 图标或菜单栏。
【讨论】:
NSRunAlertPanel() 会出现对话,但通常隐藏在其他窗口后面。如何让我的程序仅在菜单栏出现的情况下运行,但让对话框出现在所有窗口的前面?