์๋ ํ์ธ์ ์ข์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ์ฌํฉ๋๋ค!
๋ฌธ์ ๊ฐ ์์ต๋๋ค. ํ์์ด "{+7} ([000]) [000] [0000]"์ด๊ณ ์์ฑ textfield.text๊ฐ "+7 (937) 444 3333"์ ์ ๊ณตํ๋ ํ ์คํธ ํ๋๊ฐ ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ui์์๋ ๊ด์ฐฎ์ง๋ง ์๋ฒ์ ์์ฒญํ๋ ค๋ฉด ์๋ณธ ๋ฌธ์์ด์ด ํ์ํฉ๋๋ค. ์๋ณธ ์ ๋ ฅ ํ ์คํธ "79374443333"์ ์ป์ ์ ์์ต๋๊น?
์๋
ํ์ธ์ @TikhonovAlexander
์ง๋ฌธํด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค.
๋จผ์ MaskedTextFieldDelegateListener
( MaskedTextFieldDelegate
์ ์์ฑ)๋ก๋ถํฐ ์ฌ์ฉ์ ์
๋ ฅ์ value
๋ฅผ ์ถ์ถํ ์ฝ๋ฐฑ์ ๋ฐ์์ด์ผ ํฉ๋๋ค.
๋์งธ, ๋ชจ๋ MaskedTextFieldDelegate
์๋ ๊ด๋ จ Mask
์ธ์คํด์ค๊ฐ ํ์์ ๋ฐ๋ผ ์ด๋ ค ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ค์์ ํธ์ถํ ์ ์์ต๋๋ค.
let text = CaretString(string: textfield.text, caretPosition: textfield.text.endIndex)
let extractedValue =
maskedTextFieldDelegate.mask.apply(toText: text, autocomplete: ...).extractedValue
value
๋ค์ ์ป์ผ๋ ค๋ฉด.
์ง๋ฌธ์ด ์์ผ์๋ฉด ๋จผ์ ์ง๋ฌธํด ์ฃผ์ญ์์ค.
์ค, ์ด์ ๋ช ํํด์ก์ต๋๋ค. ๊ณ ๋ง์ต๋๋ค !
๋๋ ๋ง์คํน์ ํ ์ ์์ง๋ง ์ฑ๊ณต์ ์ธ ๋ง์คํน ํ์ ๋๋ ๊ทธ๊ฒ์ ์๋ฒ์ ๊ณํ ํ ์คํธ๋ฅผ ๋ณด๋ผ ์ ์๋๋ก ์ญ๋ง์คํฌ๋ฅผ ํ๊ณ ์ถ๋ค. ์๋ฅผ ๋ค์ด ์ฌ์ฉ์๊ฐ (56)-55(mask formate ([11])-[11]์ ๊ฒฝ์ฐ)๋ฅผ ์ ๋ ฅํ๋ฉด 5665์ ๊ฐ์ ๊ณํ ํ ์คํธ๋ก ๋ง๋ค์ด ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค.
ExtractValue๋ ๋ฌธ์ ์ธ ๊ฒฝ์ฐ ๊ณํ ํ ์คํธ(๋ง์คํน๋์ง ์์ ํ ์คํธ)๋ฅผ ๋ฐํํ์ง ์์ผ๋ฏ๋ก ํด๊ฒฐํด์ผ ํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ค, ์ด์ ๋ช ํํด์ก์ต๋๋ค. ๊ณ ๋ง์ต๋๋ค !