1的Xcode 7.3版(7D175)
2.swift 2.2版
3.Mac OS版本OS X EI Capitan的10.11.4
我想为Mac OS和 一个桌面应用程序我已经设置了窗口级别,但这不起作用。如何让窗户始终保持最快的速度?
1
A
回答
1
你需要检查窗口!=前无任何自定义代码
class ViewController: NSViewController {
var addedObserver = false
override func viewDidLoad() {
super.viewDidLoad()
if let window = self.view.window {
// custom window here
window.level = Int(CGWindowLevelForKey(.FloatingWindowLevelKey))
} else {
addedObserver = true
self.addObserver(self, forKeyPath: "view.window", options: [.New, .Initial], context: nil)
}
}
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
if let window = self.view.window {
// custom window here
window.level = Int(CGWindowLevelForKey(.FloatingWindowLevelKey))
}
}
deinit {
if addedObserver {
self.removeObserver(self, forKeyPath: "view.window")
}
}
}
+0
谢谢。我已将您的代码添加到我的项目中,但无法将窗口保留在顶部 –
+0
@SteveJiang在//自定义窗口中进行了代码调用?我确实创建了一个新项目并尝试使用此代码。它的工作和窗口字体顶部,但我不知道什么NSWindow级别做。 – larva
+1
'NSApplication.sharedApplication()。windows.first?.level =' –
0
还在测试它,但是这是幼虫在斯威夫特4回答,它似乎是工作。
var observingFloat = false
override func viewDidLoad() {
super.viewDidLoad()
self.view.wantsLayer = true
if self.view.window != nil {
NSApplication.shared.windows.first?.level = NSWindow.Level(rawValue: 1)
} else {
observingFloat = true
self.addObserver(self, forKeyPath: "view.window", options: [.new, .initial], context: nil)
}
}
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if self.view.window != nil {
NSApplication.shared.windows.first?.level = NSWindow.Level(rawValue: 1)
}
}
相关问题
- 1. 如何使活动窗口始终保持最佳状态
- 2. 如何获得完美的边框并让窗户始终保持最佳状态?
- 3. 如何让Emacs中的编译窗口始终保持一定的大小?
- 4. 最终变量和非最终变量var |之间的快速差异最后让和非最终让
- 5. 如何确保JDialog始终保持最佳状态
- 6. 如何让Java3D启动速度更快?
- 7. 任务是始终保持最新
- 8. 任务是始终保持最新
- 9. 如何让窗户保持在所有其他窗口(“最底层”)
- 10. 如何让JLabel始终保持在JButton之上?
- 11. 如何让viewController始终保持纵向模式,iOS?
- 12. 如何让JFrame始终保持在底部?
- 13. 如何让滚动条始终保持底部?
- 14. 如何使ethereum同步保持快速?
- 15. 如何获得100%高度的浮动div始终保持100%
- 16. 如何保持最终屏幕数据的反应原始?
- 17. 如何始终保持活动的最新参考
- 18. 如何使窗体始终保持在桌面...在vb.net c#
- 19. 如何始终保持浮动Infragistics contentpane wpf窗口“可见”?
- 20. 保持速度计应用程序的最大速度
- 21. 如何保持SqlConnection始终打开
- 22. 如何使SurfaceView始终保持水平?
- 23. 如何保持滚轮的速度?
- 24. clearAnimation() - 如何让动画保持最终位置?
- 25. 如何始终将对话框保持在最前?
- 26. 如何将div始终保持在固定的宽度和100%的高度?
- 27. 如何将终端输入始终保持在Golang的底部?
- 28. 的MySQL保持始终处于高速缓存
- 29. 如何让通知保持在最前?
- 30. 速度最快,@Entity或@Embedded?
您是否在设置级别之前检查窗口是否存在(!= nil)? – larva
窗口属性它可能是零。没有什么与你的语法有关。 –
http://stackoverflow.com/a/35714647/2303865 –