gpt4 book ai didi

swift - OSX/Swift 使应用程序可在任何地方使用

转载 作者:行者123 更新时间:2023-11-30 13:14:26 24 4
gpt4 key购买 nike

我有一个用 osx swift 编写的应用程序,我需要有关特定行为/问题的帮助。我使用以下代码将应用程序设置为高于所有其他窗口:

self.window!.level =  Int(CGWindowLevelForKey(Int32(kCGScreenSaverWindowLevelKey)))

据我所知,它的一个小问题是它确实有效......但如果我进入启动板应用程序菜单,该窗口仍然会显示。这正是我希望窗口的行为方式,但每当我点击窗口内的按钮时,应用程序都会重置到正常桌面以正常运行。我在下面有一个链接来演示这一点:

https://gyazo.com/f4d05c10ad7b5dbf8b95f3bd2aa23cc4

看看当我点击应用程序中的按钮时,我是如何从启动板中取出并重置到正常桌面屏幕的?我真的需要解决这个问题。

是否有任何 info.plist 属性可以用来防止这种情况发生?是否有任何代码可以使我的窗口在任何地方都可用,而无需将其重置为正确的桌面环境?提前致谢!

最佳答案

<强> NSFloatingWindowLevel 可能是更好的选择:

import Cocoa

let kCGFloatingWindowLevel: CGWindowLevel =
CGWindowLevelForKey(CGWindowLevelKey.FloatingWindowLevelKey)

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

@IBOutlet weak var window: NSWindow!

func applicationDidFinishLaunching(aNotification: NSNotification) {
self.window!.level = Int(kCGFloatingWindowLevel)
}
}

您当前使用的窗口级别类型主要用于屏幕保护程序窗口。如果您想要一个 float 调色板或窗口,那么使用上面的应该可以给您带来所需的行为。

NSWindow : NSFloatingWindowLevel

关于swift - OSX/Swift 使应用程序可在任何地方使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38388539/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com