swift - 如何在 osx 上使用 swift 创建一个具有透明背景的窗口?

标签 swift macos cocoa

我想在我的 mac 上创建一个 osx/cocoa 应用程序,它做的事情非常简单:在我的 mac 上显示一个文本字符串,没有背景。最终,这将是一个计时器,它显示为覆盖在其他窗口之上,而不会过于干扰。

我尝试设置 window.backgroundColor = NSColor(red: 1.0, green:0.5, blue:0.5, alpha: 0.5)(看到 alpha 是 0.5),在 applicationDidFinishLaunching 但这并没有把它变成远程透明的东西。

任何好心人都想建议一种方法来做到这一点?

最佳答案

NSWindow 有一个属性“opaque”,默认情况下为真。

The value of this property is true when the window is opaque; otherwise, false.

只需将其更改为 false 即可:

override func viewWillAppear() {
    super.viewWillAppear()
    view.window?.opaque = false
    view.window?.backgroundColor = NSColor(red: 1, green: 0.5, blue: 0.5, alpha: 0.5)
}

Swift 4 更新:opaque 已重命名为 isOpaque

override func viewWillAppear() {
    super.viewWillAppear()
    view.window?.isOpaque = false
    view.window?.backgroundColor = NSColor(red: 1, green: 0.5, blue: 0.5, alpha: 0.5) 
}

关于swift - 如何在 osx 上使用 swift 创建一个具有透明背景的窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34531118/

相关文章:

android - 相当于 Xcode 中的 android 的 styles.xml

macos - os x 终端、ssh 和太多打开的文件

ios - "pod install"命令在 Mac OS X 上有什么作用?

javascript - 如何保存 OS X 仪表板小部件生成的文件?

objective-c - 使用@synthesize 时如何提供访问器方法的额外自定义实现?

iOS游戏陀螺仪——用户需要静止时如何检测作弊

swift - 使用 Alamofire Swift3 发送复杂参数获取状态代码 500 错误

ios - Swift 协议(protocol)定义了一个不适用于 UIViewController 的 init

objective-c - setNeedsDisplay *总是*重画吗?

iOS:从不同的选择器中获取日期和时间并将它们加在一起?