1
我試圖在所有屏幕上顯示窗口副本。看到我的代碼如下。它只在主屏幕上正確顯示無邊框窗口。我沒有在任何地方看到其他窗口。所有屏幕上的顯示窗口
該窗口應該顯示從左邊200px和從頂邊200px。
我將origin.x設置爲屏幕高度--300(= 200px間距+窗口本身的高度)。
任何想法我做錯了什麼?
- (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];
}
謝謝,這是訣竅。我還需要將screenRect.origin設置爲NSZeropoint,因爲我現在不再需要相對於主屏幕的原點。 – Wesley 2013-03-05 14:17:42
零像每個屏幕的中心,或像窗口的原點零? – CodaFi 2013-03-05 14:24:19
對不起,您可能認爲這是個問題。這是一個答案。我將screenRect.origin設置爲NSZeroPoint,並使其在每個屏幕上正確定位。 – Wesley 2013-03-05 14:37:42