Проблема не в -orderFront:
.
Оказывается, что в Catalina, если вы измените политику активации приложения на NSApplicationActivationPolicyRegular
, как в какой-то момент в ближайшем будущем (т.е. не сразу), приложение станет активным приложением, как если бы оно было запущено.
Меня бросила последовательность событий: политика активации изменилась, окно было создано и сделано спереди, а затем приложение стало самым передним приложением.
К сожалению, поскольку невозможно отказаться от того, чтобы стать самым передним приложением, мой единственный обходной путь - захват текущего активного приложения при изменении политики активации, ожидание активации, затем запросить исходное приложение снова стать активным. Ужасно, но в моем приложении это должно происходить только несколько раз в день; мы надеемся, что пользователь не смотрит на экран, когда он это делает.