일모도원(日暮途遠) 개발자
[MacCatalyst] 스크린 세이버 동작안하게 하기 본문
Mac에서 동영상이 재생중일때는 스크린세이버가 동작하면 안된다.
CatalystAppManager.swift파일에 아래 두 func을 추가하자.
#if targetEnvironment(macCatalyst)
import IOKit.pwr_mgt
var noSleepAssertionId: IOPMAssertionID = 0
var noSleepReturn: IOReturn?
func disableScreenSleep(reason: String = "Unknown reason") -> Bool? {
guard noSleepReturn == nil else {return nil}
noSleepReturn = IOPMAssertionCreateWithName(kIOPMAssertionTypeNoDisplaySleep as CFString, IOPMAssertionLevel(kIOPMAssertionLevelOn), reason as CFString, &noSleepAssertionId)
return noSleepReturn == kIOReturnSuccess
}
func enableScreenSleep() -> Bool {
if noSleepReturn != nil {
_ = IOPMAssertionRelease(noSleepAssertionId) == kIOReturnSuccess
noSleepReturn = nil
return true
}
return false
}
#endif
비디오를 열면 적당한 곳에서 아래를 호출해서 스크린 세이버가 작동안되게 한다.
_ = CatalystAppManager().disableScreenSleep()
그리고 비디오를 닫기전에 enableScreenSleep을 실행해준다.
_ = CatalystAppManager().enableScreenSleep()
'iOS개발 > MacCatalyst' 카테고리의 다른 글
[MacCatalyst] 마우스 커서 숨기기 (0) | 2022.10.05 |
---|---|
[MacCatalyst] 웹뷰에서 키보드 타이핑이 안될때 (0) | 2022.08.24 |
[MacCatalyst] MacBundle.bundle을 맥에만 추가하기 (0) | 2022.08.23 |
[MacCatalyst] 이미지 파일 저장하기 (0) | 2022.08.20 |
[MacCatalyst] 맥용 테스트 플라이트 설치하기 (0) | 2022.07.20 |