Skip to the content.

[macOS 14] 새로운 App Activation 방식

macOS 14 부터 App Activation의 로직이 바뀌었습니다. 이전 로직은 사용자 경험을 해쳤기 때문입니다.

만약에 사용자가 영화를 보고 있거나 발표를 하고 있다던지 무언가에 집중하고 있다고 가정합시다. 그 상황에서 다른 앱에 갑자기 화면상에 켜지거나 (activate), 다른 앱이 갑자기 파일을 열어 버려서 새로운 앱이 화면에 켜지는 일이 발생했습니다. 특히 악성 프로그램들이 이 정책을 악용하고 있었습니다.

이러한 불쾌한 경험을 막기 위해, 현재 Activate된 앱만 다른 앱을 Activate 할 수 있도록 정책이 바뀌었습니다.

모든 정책은 SkyLight (WindowServer)에서 관리합니다.

API

Deprecated

Added

실험

그러면

[NSRunningApplication.currentApplication activateFromApplication:/**/ options:NSApplicationActivateAllWindows];

이렇게 하면, 현재 내 앱이 background/inactive 상태이지만 NSRunningApplication.currentApplication은 현재 active된 앱이 나오므로 무조건 active가 가능한건가?

이런 생각이 들었는데 실험해보니 당연히 안 되네요. 애초에 현재 내 앱은 background/inactive 상태일 때는 active를 할 권한이 없으니까요.