ΠΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΡ ΡΡΡΡΠ½Ρ?
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΌΠ°ΡΠΊΠ° {(123)} - [000], Π° ΡΠ΅ΠΊΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ - Β«(123) 456, Ρ Ρ
ΠΎΡΡ ΡΠ·Π½Π°ΡΡ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ - 456Β».
ΠΡΠΈΠ²Π΅Ρ @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
.