Кнопка «Закрыть» NSColorPanel не отображается в MacOS Mojave при вызове из пользовательской панели настроек - PullRequest
0 голосов
/ 20 января 2019

В Mojave и в пользовательской панели «Системные настройки» моей заставки кнопка «Закрыть» [NSColorPanel sharedColorPanel] не отображается.

Я прошу вашей помощи / совета, чтобы вернуть его.

Я использую [NSColorPanel sharedColorPanel], чтобы позволить пользователю выбрать пользовательский цвет, который будет использоваться при рендеринге спрайтов в моей заставке.

В Мохаве эта панель перестала иметь кнопку закрытия, и пользователь не может завершитьвыбор.Панель отображается как модальная, и пользователь может принудительно выйти только через системные настройки (поскольку это экранная заставка, ее диалоговое окно конфигурации запускается как панель предпочтений из системных настроек).

Этого не происходитв версиях, предшествующих Mojave.
Чтобы сделать его более сложным, у меня также есть версия скринсейвера .app, и там появляется кнопка «Закрыть» Ok.Версия .app является автономным приложением и не запускается через ScreensaverEngine, как заставки.

NSColorPanel *panel; // weak ref
panel = [NSColorPanel sharedColorPanel];
[panel setShowsAlpha:NO];
[panel setColor: color ];
[panel setDelegate:self];
[NSApp runModalForWindow:panel]; // <- does not return from that call
[panel setDelegate:nil];
NSColor *result=panel.color;
[panel close];

Я пытался включить кнопку с помощью

[[panel standardWindowButton:NSWindowCloseButton] setEnabled:YES];
[[panel standardWindowButton:NSWindowCloseButton] setHidden:NO];

, но это не помогло.

Вы можете увидеть отсутствующую кнопку Закрыть на этом снимке экрана https://user -images.githubusercontent.com / 4344442 / 51428774-5f927900-1c10-11e9-8441-ec85e71534c7.png Я также могуукажите общедоступные URL-адреса для загрузки версий .saver и .app, если это поможет.

...