すべての画面にウィンドウのコピーを表示しようとしています。以下の私のコードを参照してください。メイン画面にフチなしウィンドウが正しく表示されるだけです。他のウィンドウはどこにも表示されません。
ウィンドウには、左側から200ピクセル、上面から200ピクセルが表示されるはずです。
origin.xを画面の高さ-300(= 200pxの間隔+ウィンドウ自体の100pxの高さ)に設定しました。
私が間違っていることについて何か考えはありますか?
- (void)displayOnAllScreens
{
NSArray *screenArray = [NSScreen screens];
_tempWindows = [[NSMutableArray alloc] init];
if ([screenArray count] == 1) {
[self displayOnScreen:[NSScreen mainScreen]];
} else {
for (int i=0; i<[screenArray count]; i++) {
[self displayOnScreen:[screenArray objectAtIndex:i]];
}
}
}
- (void)displayOnScreen:(NSScreen *)screen
{
BOOL isMainScreen = NO;
if (screen == [NSScreen mainScreen]) {
isMainScreen = YES;
}
NSRect screenRect = [screen frame];
NSRect frame = NSMakeRect(screenRect.origin.x + 200, screenRect.size.height - 300, 100, 100);
NSWindow *_tempWindow;
_tempWindow = [[NSWindow alloc] initWithContentRect:frame
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreBuffered
defer:NO];
if (isMainScreen) {
[_tempWindow setBackgroundColor:[NSColor lightGrayColor]];
} else {
[_tempWindow setBackgroundColor:[NSColor redColor]];
}
[_tempWindow makeKeyAndOrderFront:NSApp];
[_tempWindow setAlphaValue:0.93];
[_tempWindow setCollectionBehavior:NSWindowCollectionBehaviorCanJoinAllSpaces];
[_tempWindows addObject:_tempWindow];
}