Input-mask-ios: ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ строку

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 27 сСнт. 2017  Β·  6ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: RedMadRobot/input-mask-ios

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΡƒΡŽ струну?
НапримСр, Ρƒ мСня Π΅ΡΡ‚ΡŒ маска {(123)} - [000], Π° тСкст тСкстового поля - Β«(123) 456, я Ρ…ΠΎΡ‡Ρƒ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, Π² этом случаС - 456Β».

ВсС 6 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ @beltik
Бпасибо Π·Π° вопрос.

MaskedTextFieldDelegate ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»ΡŒ с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° textField(_:didFillMandatoryCharacters:didExtractValue:) , Π³Π΄Π΅ Β«ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β» - это пСрСмСнная, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅, подробности Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ см. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ Β« ИспользованиС Β».

Бпасибо.
Π― Ρ‚Π°ΠΊΠΆΠ΅ Ρ…ΠΎΡ‡Ρƒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ любой символ, Ρ†ΠΈΡ„Ρ€Ρƒ ΠΈΠ»ΠΈ символ ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ Π²Π²ΠΎΠ΄Ρƒ.
Π’ настоящСС врСмя для этого я ΠΏΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°ΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π½Π° свой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ измСняю Π΅Π΅.
ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ понадобились символы Π²Ρ€ΠΎΠ΄Π΅ ".% @?" ΠΈ Ρ‚.ΠΏ.

@beltik ,

Π― Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ вас понял, Π½ΠΎ Π΅ΡΡ‚ΡŒ запрос Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символах, ΠΈ тСкущая Ρ€Π°Π±ΠΎΡ‚Π° продолТаСтся.

Ps Π’Π°ΠΊΠΆΠ΅, согласно Π²Π°ΡˆΠ΅ΠΌΡƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ маски, для {(123)}-[000] Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ (123)000 , с Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ прСфиксом (123) .

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΠΊΠ°ΠΊ (123)-[000] .

@taflanidi

Если Ρƒ мСня Π΅ΡΡ‚ΡŒ маска Ρ‚ΠΈΠΏΠ° [-] ΠΈΠ»ΠΈ [_], я ΠΌΠΎΠ³Ρƒ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΡƒΠΊΠ²Ρ‹ ΠΈΠ»ΠΈ Ρ†ΠΈΡ„Ρ€Ρ‹, Π½ΠΎ ΠΊΠ°ΠΊ насчСт Ρ‚Π°ΠΊΠΈΡ… символов, ΠΊΠ°ΠΊ Ρ‚ΠΎΡ‡ΠΊΠ°? Π’ настоящСС врСмя я Π½Π΅ ΠΌΠΎΠ³Ρƒ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ символы Π² ΠΏΠΎΠ»Π΅.

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ эту Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, я ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΠ» Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈΠ· ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» Π΅Π΅. БущСствуСт ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ символов Π² зависимости ΠΎΡ‚ случая пСрСчислСния, я просто ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽ Π΅Π³ΠΎ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽ ДА (ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΌΠΎΠΈΡ… Π½ΡƒΠΆΠ΄). Но Π»ΡƒΡ‡ΡˆΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ ["specific-key"], ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС символы.

ΠŸΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ ΠΌΠ½Π΅ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ Ρ€Π°Π·. МнС Π½ΡƒΠΆΠ½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ символы, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Β«,Β» ΠΈΠ»ΠΈ Β«.Β».
Для этого я скопировал Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π² свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΈ Π² классС ValueState Π² func func ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ (character char: Character) -> Bool {
Π― Π·Π°ΠΌΠ΅Π½ΠΈΠ» ΠΊΠΎΠ΄ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:
case .AlphaNumeric:
// Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ CharacterSet.alphanumerics.isMember (символ: char)
Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ истину

Но, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, я Π±Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π΅Π» Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ рСгистр, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ case .everyCharacter. И эта функция, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ я ΠΏΡ€ΠΎΡˆΡƒ (ΠΈΠ»ΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π΅ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ простой способ, Π½ΠΎ я Π΅Π³ΠΎ Π½Π΅ нашСл).
НадСюсь, я ясно Π²Ρ‹Ρ€Π°ΠΆΠ°ΡŽΡΡŒ.

Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² 3.3.0 .

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ