UIWindow๋ฅผ ์ค๋ช ํ๋ ๊ทธ๋ฆผ
์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด UIWindow
๊ฐ UIView
์ ๋ถ๋ชจ๋ผ๋ ๋๋์ ๋งค์ฐ ๋ง์ด ์ฃผ๊ณ ์๋ค. ํ์ง๋ง ์ค์ ๋ก๋ ๊ทธ๋ ์ง ์๋ค!
UIWindow์ Definition์ ์ดํด๋ณด๋ฉด ์คํ๋ ค UIWindow์ ๋ทฐ๋ชจ๊ฐ UIView์ธ ๊ฒ์ ์ ์ ์๋ค.
๊ณต์ ๋ฌธ์๋ฅผ ์ดํด๋ณด๋ฉด UIWindow๋ ์๋์ ๊ฐ์ด ์ ์๋์ด์๋ค.
"The backdrop for your appโs user interface and the object that dispatches events to your views."
APP์ UI์ ๋ํ ๋ฐฐ๊ฒฝ์ด๋ฉฐ View์ ์ด๋ฒคํธ๋ฅผ ์ ๋ฌํ๋ ๊ฐ์ฒด์ ๋๋ค.
"Windows work with your view controllers to handle events and to perform many other tasks that are fundamental to your appโs operation. UIKit handles most window-related interactions, working with other objects as needed to implement many app behaviors."
Window๋ค์ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๊ณ ๋ง์ ์ฑ ์คํ์ ๊ธฐ๋ณธ์ด ๋๋ ์์ ๋ค์ ์ํํ๊ธฐ ์ํด ViewController์ ํจ๊ป ์๋ํ๋ค. UIKit์ ๋๋ถ๋ถ์ Window ๊ด๋ จ ์ํธ์์ฉ์ ์ฒ๋ฆฌํ๊ณ , ์ฑ ๋์์ ๊ตฌํํ๋ ๋ฐ ํ์ํ ๋ค๋ฅธ ๊ฐ์ฒด๋ค๊ณผ ์๋ํ๋ค.
์ฑ์ ํ์์ ์ผ๋ก ์ฝํ
์ธ ๋ฅผ ํ์ํ ๊ธฐ๋ณธ Window๋ฅผ ์ ๊ณตํด์ผํ๋๋ฐ, ์ด๋ฅผ Xcode๊ฐ ๋์ ์ ๊ณตํด์ค๋๋ค. ๊ทธ๋์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ ๋๋ฉด ๋ณ๋์ ์์
์์ด๋ AppDelegate(iOS 13๋ถํฐ๋ SceneDelegate)
๋ด๋ถ์ window ์์ฑ์ด ์๋ ๊ฒ์ ๋ณผ ์ ์๋๊ฑด๊ฐ๋ด์!
์ ๊ฐ UIWindow๋ฅผ ๊ฑด๋๋ ธ๋ ๊ฑด
- Window์ Root View Controller๋ณ๊ฒฝ
- Window๊ฐ ํ์๋๋ ์คํฌ๋ฆฐ ๋ณ๊ฒฝ
์ด ๋๊ฐ์ง ์๋๋ฐ ์ด ๋๊ฐ์ง ๋ง๊ณ ๋ ์๋์ ๊ฐ์ ์์ ์ ์ํํ ๋ ์ฌ์ฉ๋๋ค๊ณ ํฉ๋๋ค.
- ๋ค๋ฅธ window๋ค๊ณผ์ ๊ฐ์์ฑ์ ์ํฅ์ ์ฃผ๋ window์ z์ถ level ์ค์
- window๋ฅผ ํ์ํ๊ณ ํค๋ณด๋ ์ด๋ฒคํธ์ ๋์์ผ๋ก ๋ง๋ค๊ธฐ
- ์ขํ ๊ฐ์ window์ ์ขํ๊ณ๋ก, ํน์ ๊ทธ ๋ฐ๋๋ก ๋ณํ
"Windows do not have any visual appearance of their own. Instead, a window hosts one or more views, which are managed by the window's root view controller."
Window๋ ์์ ๋ง์ ์ด๋ค ๋ชจ์์ด ์๋ ๊ฒ์ ์๋์ง๋ง, window๋ window์ ๋ฃจํธ ๋ทฐ์ปจ์ ์ํด ๊ด๋ฆฌ๋๋ ํ๋ ํน์ ๊ทธ ์ด์์ ๋ทฐ๋ค์ ๊ฐ์ง ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ UIWindow ๊ฐ์ฒด๋ฅผ ํ์ ํด๋์ค๋ก ๋๋ ๊ฒฝ์ฐ๋ ๊ทนํ ๋๋ฌผ๋ค๊ณ ํด์. ์์ ๋ ๋ฒจ ViewController์์ ๋ ์ฝ๊ฒ ๊ตฌํํ ์ ์๊ธฐ ๋๋ฌธ์ด๋์. ํ์ ํด๋์ค๋ก ์ง์ ํ๊ฒ ๋๋ ๋ช ๊ฐ์ง ๊ฒฝ์ฐ ์ค ํ๋๋ window์ ํค ์ํ๊ฐ ๋ณ๊ฒฝ๋ ๋ ์ฌ์ฉ์ ์ง์ ๋์์ ๊ตฌํํ๊ธฐ ์ํด becomeKey()
๋๋ registeredKey()
๋ฉ์๋๋ฅผ ์ฌ์ ์ํ ๋ ์ ๋๋ผ๊ณ ํ๋ค์!
- iOS์ฑ์ ๋ชจ๋ View๋ค์ ์ปจํ ์ด๋ ์ญํ ์ ํ๋ UIWindow ์ธ์คํด์ค๋ฅผ ๊ฐ์ง๋ค.
- UIWindow๋ UIView์ ํ์ํด๋์ค์ด๋ค.
- ๊ทธ๋ฌ๋ฏ๋ก UIWindow๋ ๊ทธ ์์ฒด๋ง์ผ๋ก View์ด๋ค.
- window์ ๋ชจ์์ด ์๋๊ฑด ์๋์ง๋ง ๋ฃจํธ ๋ทฐ์ปจ ์ดํ์ ๋ง์ ๋ทฐ๋ค์ ๊ฐ์ง ์ ์๋ค.
- window๋ฅผ ํ์ ํด๋์ค๋ก ๋๋ ๊ฒฝ์ฐ๋ ๋๋ฌผ๋ค.