objective-c - 使用 NSScreen 获取内部 macbook 屏幕

标签 objective-c screen

如果我的 MacBook 连接了外接显示器,我该如何找回 MacBook 屏幕?

其中一个屏幕可以是带有菜单栏和扩展坞的屏幕。它们也可以具有相同的分辨率、相同的名称等。

是否可以在不要求用户拔掉除 MacBook 屏幕以外的所有屏幕的情况下确定它?

最佳答案

您可以使用 CGDisplayIsBuiltin() 来确定显示是否是内置的。

示例代码:

int i = 0;
for(NSScreen* screen in [NSScreen screens]) {
    NSDictionary* screenDictionary = [screen deviceDescription];
    NSNumber* screenID = [screenDictionary objectForKey:@"NSScreenNumber"];
    CGDirectDisplayID aID = [screenID unsignedIntValue];     
    NSLog(@"Screen number %i is%@ builtin", i, CGDisplayIsBuiltin(aID)? @"": @" not");
    i++;
}

关于objective-c - 使用 NSScreen 获取内部 macbook 屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10469563/

相关文章:

objective-c - 如何检测屏幕是否具有在 Cocoa 中渲染的预定义位图区域?

android - 是否所有 10 英寸安卓平板电脑都被识别为 xlarge?

ios - 在 Objective-C 中编写 SDK

objective-c - iOS 核心图形 : Draw ONLY shadows of a CGPath

ios - 在第一次加载 View 时预选择/突出显示 UICollectionViewCell

ios - UITextField shouldChangeCharactersInRange 仅调用一次

android - 应用骨架支持多屏

ios - 如何在 Xcode 中创建一个允许我使用 Objective-C++ 编写并具有命令行界面的项目?

android - 如何创建异步任务以在加载屏幕上将声音加载到管理器中

css - 放置在固定容器内时如何将固定 div 拉伸(stretch)到屏幕?