-
[iOS] addTarget(_:action:for:)iOS 2022. 2. 16. 14:46
Instance Method
addTarget(_:action:for:)
target ๊ฐ์ฒด์ action method๋ฅผ ์ปจํธ๋กค๊ณผ ์ฐ๊ฒฐํ๋ค.
Declaration
func addTarget(_ target: Any?, action: Selector, for controlEvents: UIControl.Event)Parameters
targetaction๋ฉ์๋๊ฐ ํธ์ถ๋๋ ๋์ ๊ฐ์ฒด์ด๋ค.nil์ ์ง์ ํ๋ฉด UIKit์ ์ง์ ๋ action message์ ๋์ํ๋ responder chain์ ๊ฒ์ํ๊ณ ๋ฉ์์ง๋ฅผ ํด๋น ๊ฐ์ฒด๋ก ์ ๋ฌํ๋ค.actionํธ์ถ๋ action method๋ฅผ ํ์ธํ๋ selector. Listing 1์ signatures๋ค ์ค ์ผ์นํ๋ signature๊ฐ ์ผ์นํ๋ selector๋ฅผ ์ง์ ํ ์ ์๋ค. ์ด ๋งค๊ฐ๋ณ์๋
nil์ผ ์ ์๋ค.controlEventsaction method๊ฐ ํธ์ถ๋๋ ์ปจํธ๋กค๋ณ ์ด๋ฒคํธ๋ฅผ ์ง์ ํ๋ ๋นํธ ๋ง์คํฌ์ด๋ค. ํญ์ ์์๋ฅผ ํ๋ ์ด์ ์ง์ ํด์ผํ๋ค. ๊ฐ๋ฅํ ์์ ๋ชฉ๋ก์
UIControl.Event๋ฅผ ์ฐธ๊ณ ํ๋ฉด ๋๋ค.
Discussion
์ด ๋ฉ์๋๋ฅผ ์ฌ๋ฌ ๋ฒ ํธ์ถํ์ฌ ์ปจํธ๋กค์ ๋ํ ์ฌ๋ฌ target๊ณผ action์ ๊ตฌ์ฑํ ์ ์๋ค. ๋ํ
target๋งค๊ฐ ๋ณ์์actionํ๋ผ๋ฏธํฐ์ ๋ํด ๋์ผํ ๊ฐ์ผ๋ก ์ด method๋ฅผ ์ฌ๋ฌ ๋ฒ ํธ์ถํ๋ ๊ฒ์ด ์์ ํ๋ค. ์ปจํธ๋กค์ ๊ฐ ์ง์ ์ด๋ฒคํธ์ ์ฐ๊ฒฐ๋ ๋์ ๋ฐ ์์ ๋ชฉ๋ก์ ๊ด๋ฆฌํ๋ค.์ปจํธ๋กค์ด
targetํ๋ผ๋ฏธํฐ์ ๊ฐ์ฒด๋ฅผ ์ ์งํ์ง ์๋๋ค. ์ปจํธ๋กค์ ์ฐ๊ฒฐ๋์ด ์๋ ๋์ target ๊ฐ์ฒด์ ๋ํ ๊ฐ๋ ฅํ ์ฐธ์กฐ๋ฅผ ์ ์งํ๋ ๊ฒ์ ์ฌ์ฉ์์ ์ฑ ์์ด๋ค.controlEventsํ๋ผ๋ฏธํฐ์0์ ์ง์ ํด๋ ์ด๋ฒคํธ๊ฐ ์ด์ ์ ๋ฑ๋ก๋targetandaction๋ฉ์๋๋ก ์ ์ก๋๋ ๊ฒ์ ๋ง์ ์ ์๋ค. ์ด๋ฒคํธ ์ ์ก์ ์ค์งํ๋ ค๋ฉด ํญ์removeTarget(_:action:for:)๋ฉ์๋๋ฅผ ํธ์ถํด์ผํ๋ค.See Also
Accessing the Controlโs Targets and Actions
func removeTarget(Any?, action: Selector?, for: UIControl.Event)์ง์ ๋ target ๊ฐ์ฒด๋ก์ ์ด๋ฒคํธ ์ ์ก์ ์ค์งํ๋ค.
func actions(forTarget: Any?, forControlEvent: UIControl.Event) -> [String\]?์ง์ ๋ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋ target ๊ฐ์ฒด์ ๋ํด ์ํ๋ ์์ ์ ๋ฆฌํดํ๋ค.
var allControlEvents: UIControl.Event์ปจํธ๋กค์ ์ฐ๊ฒฐ๋ action์ด ์๋ ์ด๋ฒคํธ๋ฅผ ๋ฆฌํดํ๋ค.
์ปจํธ๋กค๊ณผ ์ฐ๊ฒฐ๋ ๋ชจ๋ target ๊ฐ์ฒด๋ค์ ๋ฐํํ๋ค.
ใ ค
ใ ค
addTarget'iOS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[iOS] instantiateViewController(withIdentifier:) (0) 2022.02.19 [iOS] ๋ทฐ์ ์ํ๋ณํ ๊ฐ์ง ๋ฉ์๋ (0) 2022.02.18 [iOS] Cocoapods pod install ์ค์น ์๋ฌ ์ ํด๊ฒฐ ๋ฐฉ๋ฒ (0) 2022.02.13 [Xcode] Code Snippet ๋ฑ๋กํ๊ธฐ (0) 2022.02.05 [iOS] Extension UIColor #colorLiteral ์ฌ์ฉํ๊ธฐ (0) 2022.02.03