保持窗口总是在顶部?

Ale*_*sky 36 macos nswindow swift swift2 swift3

在Objective-C for Cocoa Apps中,可以使用这种方式使窗口始终保持最佳状态?

如何用Swift实现同样的目标?

self.view.window?.level = NSFloatingWindowLevel
Run Code Online (Sandbox Code Playgroud)

导致构建错误 Use of unresolved identifier 'NSFloatingWindowLevel'

Leo*_*bus 77

要更改窗口级别,您无法在viewDidload中执行此操作,因为视图的窗口属性将始终为零,但可以覆盖viewDidAppear方法或IBAction方法:

斯威夫特1

override func viewDidAppear() {
    super.viewDidAppear()
    view.window?.level = Int(CGWindowLevelForKey(kCGFloatingWindowLevelKey))
}
Run Code Online (Sandbox Code Playgroud)

斯威夫特2

view.window?.level = Int(CGWindowLevelForKey(.FloatingWindowLevelKey))
Run Code Online (Sandbox Code Playgroud)

斯威夫特3

view.window?.level = Int(CGWindowLevelForKey(.floatingWindow))
Run Code Online (Sandbox Code Playgroud)

斯威夫特4

最后他们修复了奇怪的语法:

view.window?.level = .floating
Run Code Online (Sandbox Code Playgroud)

  • 在swift 2.0中打破.任何方式? (3认同)
  • 那条线到底应该去哪里? (2认同)