ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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

    • target

      action ๋ฉ”์†Œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜๋Š” ๋Œ€์ƒ ๊ฐ์ฒด์ด๋‹ค. nil ์„ ์ง€์ •ํ•˜๋ฉด UIKit์€ ์ง€์ •๋œ action message์— ๋Œ€์‘ํ•˜๋Š” responder chain์„ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ํ•ด๋‹น ๊ฐ์ฒด๋กœ ์ „๋‹ฌํ•œ๋‹ค.

    • action

      ํ˜ธ์ถœ๋  action method๋ฅผ ํ™•์ธํ•˜๋Š” selector. Listing 1์˜ signatures๋“ค ์ค‘ ์ผ์น˜ํ•˜๋Š” signature๊ฐ€ ์ผ์น˜ํ•˜๋Š” selector๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” nil์ผ ์ˆ˜ ์—†๋‹ค.

    • controlEvents

      action method๊ฐ€ ํ˜ธ์ถœ๋˜๋Š” ์ปจํŠธ๋กค๋ณ„ ์ด๋ฒคํŠธ๋ฅผ ์ง€์ •ํ•˜๋Š” ๋น„ํŠธ ๋งˆ์Šคํฌ์ด๋‹ค. ํ•ญ์ƒ ์ƒ์ˆ˜๋ฅผ ํ•˜๋‚˜ ์ด์ƒ ์ง€์ •ํ•ด์•ผํ•œ๋‹ค. ๊ฐ€๋Šฅํ•œ ์ƒ์ˆ˜ ๋ชฉ๋ก์€ UIControl.Event๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ๋œ๋‹ค.

    Discussion

    ์ด ๋ฉ”์†Œ๋“œ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ํ˜ธ์ถœํ•˜์—ฌ ์ปจํŠธ๋กค์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ target๊ณผ action์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ target ๋งค๊ฐœ ๋ณ€์ˆ˜์™€ action ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋Œ€ํ•ด ๋™์ผํ•œ ๊ฐ’์œผ๋กœ ์ด method๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•˜๋‹ค. ์ปจํŠธ๋กค์€ ๊ฐ ์ง€์› ์ด๋ฒคํŠธ์™€ ์—ฐ๊ฒฐ๋œ ๋Œ€์ƒ ๋ฐ ์ž‘์—… ๋ชฉ๋ก์„ ๊ด€๋ฆฌํ•œ๋‹ค.

    ์ปจํŠธ๋กค์ด target ํŒŒ๋ผ๋ฏธํ„ฐ์— ๊ฐ์ฒด๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ปจํŠธ๋กค์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋™์•ˆ target ๊ฐ์ฒด์— ๋Œ€ํ•œ ๊ฐ•๋ ฅํ•œ ์ฐธ์กฐ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ์šฉ์ž์˜ ์ฑ…์ž„์ด๋‹ค.

    controlEvents ํŒŒ๋ผ๋ฏธํ„ฐ์— 0์„ ์ง€์ •ํ•ด๋„ ์ด๋ฒคํŠธ๊ฐ€ ์ด์ „์— ๋“ฑ๋ก๋œ target and action ๋ฉ”์†Œ๋“œ๋กœ ์ „์†ก๋˜๋Š” ๊ฒƒ์„ ๋ง‰์„ ์ˆ˜ ์—†๋‹ค. ์ด๋ฒคํŠธ ์ „์†ก์„ ์ค‘์ง€ํ•˜๋ ค๋ฉด ํ•ญ์ƒ 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์ด ์žˆ๋Š” ์ด๋ฒคํŠธ๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.

    var allTargets: Set

    ์ปจํŠธ๋กค๊ณผ ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  target ๊ฐ์ฒด๋“ค์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
    ใ…ค
    ใ…ค
    addTarget

    ๋Œ“๊ธ€

Designed by Tistory.