Странные координаты NSScreen

Это конструктор моего подкласса NSWindow , называемый FullScreenWindow :

- (id)initWithScreen:(NSScreen *)s {
NSRect contentRect = [s frame];
self = [super initWithContentRect:contentRect
                        styleMask:NSBorderlessWindowMask
                          backing:NSBackingStoreBuffered
                            defer:NO
                           screen:s];
if (self) {
    [self setCollectionBehavior:NSWindowCollectionBehaviorStationary|
                                NSWindowCollectionBehaviorCanJoinAllSpaces|
                                NSWindowCollectionBehaviorIgnoresCycle];
    [self setReleasedWhenClosed:YES];
    [self setBackgroundColor:[NSColor greenColor]];
    [self setAlphaValue:1.0];
    [self setOpaque:NO];
    [self setLevel:NSMainMenuWindowLevel-1];
}
return self;

}

Я хочу добавить такой NSWindow к каждому экрану в [экранах NSScreen] , но когда я подключу второй дисплей, окна отображаются только правильно, если я установил origin .x of contentRect до -1440 для первого отображения (и 0 для второго). Когда я получаю значения origin.x значений фреймов экземпляров NSScreen , он возвращает 0 для первого отображения и 1440 для второго. Почему эти координаты сдвинуты?

1
nl ja de
Есть ли причина, по которой вы не используете встроенную полноэкранную поддержку NSView?
добавлено автор Peter Hosey, источник

1 ответы

Один из экранов [NSScreen] будет иметь (0, 0) как источник.
Теперь представьте себе 2 оси: Y поднимается от (0, 0), а X идет вправо.
Все остальные экраны будут иметь координаты с этой системой координат, а screen.frame.origin будет представлять нижний левый угол.

Я не мог найти это в документации, поэтому я нашел это экспериментирование с расположением дисплеев.
У меня была эта картина с двумя мониторами: основная 1366x768, вторичная 1680x1050, выровненная вверх.
Я пробовал также различные механизмы, перемещая # 1 вокруг # 0, и моя гипотеза всегда была правильной.

5
добавлено
macOS — русскоговорящее сообщество
macOS — русскоговорящее сообщество
693 участник(ов)

Обсуждаем всё, что связано с экосистемой macOS и продуктами Apple.

macOS Developers — русскоговорящее сообщество
macOS Developers — русскоговорящее сообщество
124 участник(ов)

По всем остальным macOS / Apple вопросам в @macOS_ru Обсуждаем всё, что связано с разработкой под macOS.