Objective c 如何在mac OSX Swift上获得所有受支持的屏幕分辨率
我想要一个 1) 获取我当前的屏幕分辨率(已解决) 例如:要获取当前屏幕显示代码,请执行以下操作: 系统|探查器SPDisplaysDataType| grep分辨率 2) 获取所有支持的分辨率,如下图所示(未解决) 或者任何目标C代码也会有用 Swift代码Objective c 如何在mac OSX Swift上获得所有受支持的屏幕分辨率,objective-c,swift,macos,Objective C,Swift,Macos,我想要一个 1) 获取我当前的屏幕分辨率(已解决) 例如:要获取当前屏幕显示代码,请执行以下操作: 系统|探查器SPDisplaysDataType| grep分辨率 2) 获取所有支持的分辨率,如下图所示(未解决) 或者任何目标C代码也会有用 Swift代码 var displayConfig: CGDisplayConfigRef = nil let mainDisplayID = CGMainDisplayID() var displayMode = CGDisp
var displayConfig: CGDisplayConfigRef = nil
let mainDisplayID = CGMainDisplayID()
var displayMode = CGDisplayCopyDisplayMode(mainDisplayID).takeRetainedValue()
var width = CGDisplayModeGetWidth(displayMode)
var height = CGDisplayModeGetHeight(displayMode)
print("current size: \(width)x\(height)\n")
print("available sizes:\n")
var modes = CGDisplayCopyAllDisplayModes(mainDisplayID, nil).takeRetainedValue()
let modesCount = CFArrayGetCount(modes) - 1
for i in 0...modesCount {
var mode: CGDisplayModeRef = unsafeBitCast(CFArrayGetValueAtIndex(modes, i), CGDisplayModeRef.self)
var width = CGDisplayModeGetWidth(mode)
var height = CGDisplayModeGetHeight(mode)
print("\t\(width)x\(height)\n")
Xcode 11•Swift 5.1
extension CGDirectDisplayID {
var displayMode: CGDisplayMode? { CGDisplayCopyDisplayMode(self) }
func allDisplayModes(options: CFDictionary? = nil) -> [CGDisplayMode] { CGDisplayCopyAllDisplayModes(self, options) as? [CGDisplayMode] ?? [] }
}
用法:
if let resolution = Display.mode?.resolution {
print("Resolution:", resolution)
}
for mode in Display.allModes() {
print(mode.resolution)
}
描述您的需求和要求他人为您编写代码、解释如何编写代码或提供示例或参考的问题都是离题的。请确定有关编程的特定问题。包括尝试的解决方案,解释结果与期望结果的差异,以及您收到的任何错误消息的全文。请阅读以下关于提出好问题的建议:[],]。要获得当前屏幕分辨率,代码为-------------------system_profiler SPDisplaysDataType | grep resolution请编辑您的问题,不要在评论中发布代码。感谢您帮助我提出更多问题clearer@LeoNatan“你想要代码?对你有好处。这是一个糟糕的问题。-利奥·纳坦5小时前”他问了这个问题,一年多前已经回答了自己的问题。
struct Display {
static var main: CGDirectDisplayID { CGMainDisplayID() }
static var mode: CGDisplayMode? { main.displayMode }
static func allModes(for directDisplayID: CGDirectDisplayID = main) -> [CGDisplayMode] { directDisplayID.allDisplayModes() }
}
if let resolution = Display.mode?.resolution {
print("Resolution:", resolution)
}
for mode in Display.allModes() {
print(mode.resolution)
}