2014-12-10 21 views
24

Trong mục tiêu-C cho các ứng dụng Cocoa, bạn có thể sử dụng cách này để giữ cho cửa sổ luôn ở trên đầu?Giữ cửa sổ luôn ở trên cùng?

Làm cách nào để đạt được điều tương tự với Swift?

self.view.window?.level = NSFloatingWindowLevel 

Nguyên nhân xây dựng lỗi Use of unresolved identifier 'NSFloatingWindowLevel'

+0

Liên kết không còn khả dụng nữa. – Blaszard

Trả lời

55

Để thay đổi mức độ cửa sổ bạn không thể làm điều đó bên trong viewDidLoad vì tính chất cửa sổ xem sẽ luôn là con số không ở đó nhưng nó có thể được thực hiện trọng phương pháp viewDidAppear hoặc trong một phương pháp IBAction :

Swift 1

override func viewDidAppear() { 
    super.viewDidAppear() 
    view.window?.level = Int(CGWindowLevelForKey(kCGFloatingWindowLevelKey)) 
} 

Swift 2

view.window?.level = Int(CGWindowLevelForKey(.FloatingWindowLevelKey)) 

Swift 3

view.window?.level = Int(CGWindowLevelForKey(.floatingWindow)) 

Swift 4

Cuối cùng họ cố định cú pháp lẻ:

view.window?.level = .floating 
+0

Có vẻ lạ, nhưng hoạt động hoàn hảo! – AlexKorovyansky

+0

Dòng chính xác ở đâu? –

+1

@LeoDabus Tại sao tôi gặp lỗi: 'Int' không thể chuyển thành 'CGWindowLevelKey'? – sam

3

tôi sẽ pref er theo cách này. Điều này bỏ qua tất cả các ứng dụng đang hoạt động khác và làm cho ứng dụng của bạn trả trước.

override func viewWillAppear() {    
     NSApplication.sharedApplication().activateIgnoringOtherApps(true) 
    } 
Các vấn đề liên quan