4
MacBookに外付けモニターが接続されている場合、MacBook画面はどのように取得されますか?NSScreen内蔵のMacBook画面を取得
どちらの画面でも、メニューバーとドックがある画面になる可能性があります。彼らはまた、同じ解像度、同じ名前などを持つことができます。
MacBookの画面を除くすべての画面のプラグを抜かないようにユーザーに要求せずにそれを判断することは可能ですか?
MacBookに外付けモニターが接続されている場合、MacBook画面はどのように取得されますか?NSScreen内蔵の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++;
}