당신은있는 CoreGraphics에서 사용할 수있는 기능을 사용할 수 있습니다 :
let windowList = CGWindowListCopyWindowInfo([.optionOnScreenOnly], kCGNullWindowID) as! [[String: Any]]
for window in windowList {
let boundsDict = window[kCGWindowBounds as String] as! CFDictionary
let applicationName = window[kCGWindowOwnerName as String] as! String
let windowName = window[kCGWindowName as String] as! String
if let bounds = CGRect(dictionaryRepresentation: boundsDict), bounds.origin.y == 0 {
print(applicationName, windowName, bounds)
}
}
는 테스트하는 동안, 내가 찾은 상태 표시 줄의 항목은 그 경계가 화면의 맨 고수들이라는 것을. 여러 화면 설정에서 테스트하지는 않습니다. 이 모든 작업에도 불구하고 상태 표시 줄 항목을 소유 한 응용 프로그램의 이름 만 있으면됩니다. 바에서 항목을 참조하는 NSStatusItem
의 인스턴스를 만드는 방법을 찾지 못했습니다.