Input-mask-ios: ์›๋ž˜ ๋ฌธ์ž์—ด ๊ฐ€์ ธ์˜ค๊ธฐ

์— ๋งŒ๋“  2017๋…„ 09์›” 27์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: RedMadRobot/input-mask-ios

์›๋ž˜ ๋ฌธ์ž์—ด์„ ์–ป๋Š” ๋ฐฉ๋ฒ•?
์˜ˆ๋ฅผ ๋“ค์–ด, ๋‚˜๋Š” ๋งˆ์Šคํฌ {(123)}-[000]์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  ํ…์ŠคํŠธ ํ•„๋“œ ํ…์ŠคํŠธ๋Š” "(123)456, ๋‚˜๋Š” ์ •ํ™•ํžˆ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฒƒ์„ ์–ป๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ฒฝ์šฐ๋Š” - 456์ž…๋‹ˆ๋‹ค.

question

๋ชจ๋“  6 ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š” @beltik
์งˆ๋ฌธํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

MaskedTextFieldDelegate ์—๋Š” ์ฝœ๋ฐฑ ๋ฉ”์„œ๋“œ textField(_:didFillMandatoryCharacters:didExtractValue:) MaskedTextFieldDelegate ๊ฐ€ ์žˆ๋Š” ๋ฆฌ์Šค๋„ˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ยซ์ถ”์ถœ๋œ ๊ฐ’ยป์€ ์ฐพ๋Š” ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ตฌํ˜„ ์„ธ๋ถ€ ์ •๋ณด๋Š” ์‚ฌ์šฉ๋ฒ• ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ฐ์‚ฌ.
๋˜ํ•œ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์— ๋ฌธ์ž, ์ˆซ์ž ๋˜๋Š” ๊ธฐํ˜ธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์›ํ•ฉ๋‹ˆ๋‹ค.
ํ˜„์žฌ ๊ทธ๋ ‡๊ฒŒํ•˜๊ธฐ ์œ„ํ•ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋‚ด ๊ฐœ์ฒด๋กœ ๋“œ๋ž˜๊ทธํ•˜๊ณ  ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด์œ ๋Š” ".%@?"์™€ ๊ฐ™์€ ๊ธฐํ˜ธ๊ฐ€ ํ•„์š”ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋“ฑ.

@beltik ,

์ œ๋Œ€๋กœ ์ดํ•ดํ–ˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ํŠน์ˆ˜๋ฌธ์ž์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ ์š”์ฒญ์ด ์žˆ์–ด์„œ ํ˜„์žฌ ์ž‘์—…์ด ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

Ps ๋˜ํ•œ ๋งˆ์Šคํฌ ํ˜•์‹์— ๋”ฐ๋ผ {(123)}-[000] ๋Œ€ํ•ด (123) ์ ‘๋‘์‚ฌ๊ฐ€ ํฌํ•จ๋œ (123)000 ์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ ๊ฐ’์„ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ์ƒ๋žตํ•˜๋ ค๋ฉด (123)-[000] ์™€ ๊ฐ™์€ ํ˜•์‹์„ ํ†ตํ•ฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@taflanidi

[-] ๋˜๋Š” [_]์™€ ๊ฐ™์€ ๋งˆ์Šคํฌ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฌธ์ž๋‚˜ ์ˆซ์ž๋งŒ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ ๊ณผ ๊ฐ™์€ ๊ธฐํ˜ธ๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ํ˜„์žฌ ํ•„๋“œ์— ์  ๋ฐ ๊ธฐํƒ€ ๊ธฐํ˜ธ๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ํฌ๋“œ์—์„œ ํ”„๋กœ์ ํŠธ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋“œ๋ž˜๊ทธํ•˜๊ณ  ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ด๊ฑฐํ˜•์— ๋”ฐ๋ผ ํŠน์ • ๋ฌธ์ž ์ง‘ํ•ฉ๋งŒ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํžˆ ์ฃผ์„์„ ๋‹ฌ๊ณ  YES๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค(๋‚ด ํ•„์š”์— ์ ํ•ฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—). ๊ทธ๋Ÿฌ๋‚˜ ๋” ๋‚˜์€ ์†”๋ฃจ์…˜์€ ๋ชจ๋“  ๊ธฐํ˜ธ๋ฅผ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ๋Š” ["ํŠน์ • ํ‚ค"]์™€ ๊ฐ™์€ ๊ฒƒ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ค์‹œ ์„ค๋ช…ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. "," ๋˜๋Š” "."์™€ ๊ฐ™์€ ๊ธฐํ˜ธ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฅผ ์œ„ํ•ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋‚ด ํ”„๋กœ์ ํŠธ์— ๋ณต์‚ฌํ•˜๊ณ  func func์˜ ValueState ํด๋ž˜์Šค์—์„œ accept(character char: Character) -> Bool {
์ฝ”๋“œ๋ฅผ ๋‹ค์Œ์œผ๋กœ ๋Œ€์ฒดํ–ˆ์Šต๋‹ˆ๋‹ค.
์ผ€์ด์Šค .AlphaNumeric:
// ๋ฐ˜ํ™˜ CharacterSet.alphanumerics.isMember(character: char)
true๋ฅผ ๋ฐ˜ํ™˜

ํ•˜์ง€๋งŒ ๋ฌผ๋ก  ์ผ€์ด์Šค .everyCharacter์™€ ๊ฐ™์€ ์ถ”๊ฐ€ ์ผ€์ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚ด๊ฐ€ ์š”์ฒญํ•œ ๊ทธ ๊ธฐ๋Šฅ (๋˜๋Š” ์–ด์ฉŒ๋ฉด ๋” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ์ง€๋งŒ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค).
๋‚ด๊ฐ€ ๋‚˜ ์ž์‹ ์„ ๋ถ„๋ช…ํžˆํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

3.3.0 ์—์„œ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰

๊ด€๋ จ ๋ฌธ์ œ

DamascenoRafael picture DamascenoRafael  ยท  4์ฝ”๋ฉ˜ํŠธ

razalur picture razalur  ยท  3์ฝ”๋ฉ˜ํŠธ

SteynMarnus picture SteynMarnus  ยท  11์ฝ”๋ฉ˜ํŠธ

caioremedio picture caioremedio  ยท  6์ฝ”๋ฉ˜ํŠธ

KompoD picture KompoD  ยท  5์ฝ”๋ฉ˜ํŠธ