Ответ 1
NSLog(@"%fx%f",screenRect.size.width, screenRect.size.height);
Я могу вернуть размер экрана, используя:
- (void) getScreenResolution {
NSArray *screenArray = [NSScreen screens];
NSScreen *mainScreen = [NSScreen mainScreen];
unsigned screenCount = [screenArray count];
unsigned index = 0;
for (index; index < screenCount; index++)
{
NSScreen *screen = [screenArray objectAtIndex: index];
NSRect screenRect = [screen visibleFrame];
NSString *mString = ((mainScreen == screen) ? @"Main" : @"not-main");
NSLog(@"Screen #%d (%@) Frame: %@", index, mString, NSStringFromRect(screenRect));
}
}
Вывод:
Экран № 0 (Основной) Кадр: {{0, 4}, {1344, 814}}
Есть ли способ отформатировать {1344, 814}
до 1344x814
?
Это отлично работает:
- (NSString*) screenResolution {
NSRect screenRect;
NSArray *screenArray = [NSScreen screens];
unsigned screenCount = [screenArray count];
unsigned index = 0;
for (index; index < screenCount; index++)
{
NSScreen *screen = [screenArray objectAtIndex: index];
screenRect = [screen visibleFrame];
}
return [NSString stringWithFormat:@"%.1fx%.1f",screenRect.size.width, screenRect.size.height];
}
NSLog(@"%fx%f",screenRect.size.width, screenRect.size.height);
Поиск размера экрана в Mac OS очень прост:
NSRect e = [[NSScreen mainScreen] frame];
H = (int)e.size.height;
W = (int)e.size.width;
В Swift 4.0 вы можете получить размер экрана на главном экране:
if let scrn: NSScreen = NSScreen.main {
let rect: NSRect = scrn.frame
let height = rect.size.height
let width = rect.size.width
}
Если вы ищете размер экрана с определенным существующим окном, вы можете получить его с помощью:
var myWin: NSWindow = (The Window you want to look for the screen, it is laying on)
var scrn: NSScreen = myWin.screen!
var rect: NSRect = scrn.frame
var height = rect.size.height
var width = rect.size.width
Для тех парней, которые ищут способ получить разрешение экрана:
Если вы программируете приложение на основе окон, вы можете просто получить разрешение от _window.screen.frame.size
NSScreen.mainScreen()!.frame // {x 0 y 0 w 1,920 h 1,200}
NSScreen.mainScreen()!.frame.width // 1,920.0
NSScreen.mainScreen()!.frame.height // 1,200.0
Решение Swift 3:
NSScreen.main()!.frame