Для того, чтобы пользователи приложения не тыкали своими шаловливыми ручками куда попало не могли вводить заведомо не корректный текст, можно реализовать ряд ограничений для них.

Ограничения для UITextField на ввод текста На сайтах обычно это реализуется с помощью JS-скриптов, которые, теоретически, могут быть оключены пользователем на глобальном уровне, и все ограничения, реализованные с помощью JS перестанут действовать.

В iOS-приложении пользователь ничего отключить не сможет :)

Дале - примеры кода...

 

 

Ограничение для ввода в UITextField - разрешить только цифры: 

 

    func onlyDigitsAllowed(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {

        guard CharacterSet(charactersIn: "0123456789").isSuperset(of: CharacterSet(charactersIn: string)) else {

            return false

        }

        return true

    }

 

 

Ограничение для ввода в UITextField - по количеству символов:

   

@IBAction func digitLimitSize(_ sender: UITextField) {

        if sender.text!.lengthOfBytes(using: String.Encoding.utf8) > 2 {

            sender.text = String(sender.text!.prefix(2))

        }

    }

В данном примере - это 2-значное число.

Ограничение настроено на событие Editing Changed.

Ограничения для UITextField на ввод текста - количество символов 

 

 

Ограничение для ввода числа в UITextField - задать диапазон чисел от 1 до ХХХ

Добавить во ViewController 3 строчки - объявить 1 переменную и 2 константы:

 

class ViewController: UIViewController {


let minValue = 1
let maxValue = 99
lazy var valuesRange = minValue...maxValue

// остальной код приложения:

}

 

После кода ViewController добавить расширение (Extension):

 

extension ViewController {

     func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {

       let newText = NSString(string: textField.text!).replacingCharacters(in: range, with: string)

       

       if newText.isEmpty {

         return true

       }

       

       return valuesRange.contains(Int(newText) ?? minValue - 1)

   }

}

Минусы данного варианта:

1. Минимальное число всегда должно быть единица (1), иначе не получится ввести двузначное число, начинающееся на цифру менее minValue (например, если установаить minValue = 3, то никто не сможет ввести в текствое поле числа 2, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29). Если для функционала приложения разрешенный диапазон чисел должен начинаться с 1, то данное ограничение не будет влиять на работу.

2. Данное ограничение будет распространяться на все текстовые поля (UITextField). Чтобы такого не было, придется немного дополнительно поколдовать с кодом.

 

 

Комментарии (0)

Здесь не опубликовано еще ни одного комментария

Оставьте свой комментарий

  1. Опубликовать комментарий как Гость.
0 Значки
Вложения (0 / 3)
Поделитесь своим местоположением

      Advego Plagiatus - проверка уникальности текстов
      Advego Plagiatus - проверка уникальности текстов

      Advego Plagiatus - замечательная программа с интуитивно понятным интерфейсом, предназначенная для поиска в Интернете частичных или полных копий текста. Например, написал ты статью - а, оказывается, она уже давным-давно размещена в Интернете на каком-то сайте и написана практически такими же словами :) И, так вот, чтобы не ударить "грязью в лицо", статью эту нужно предварительно проверить на...




      Как отключить эскизы окон на панели задач Windows 10
      Как отключить эскизы окон на панели задач Windows 10

      В Windows 10 можно посмотреть миниатюры окон всех запущенных приложений (кроме работающих в фоне) → навести указатель мыши и, не разворачивая полностью экран, найти среди нескольких открытых окон браузера то самое окно, которое нужно. Или среди нескольких открытых документов Word найти нужный документ. Бестолковая функция. Потому что часто срабатывает тогда, когда это не нужно, закрывая важный контент...




      Mozilla Firefox + плагины и дополнения
      Mozilla Firefox + плагины и дополнения

      27 сентября 2011 года вышла новая версия популярного браузера Mozilla Firefox - седьмая (7). Поздравляем рыжую лисичку с очередной реинкарнацией! Ура! :) Если честно, то в последнее время обновления браузеров (и Firefox и Opera) напоминает какую-то гонку вооружений. Индекс версии меняется на порядок! Неужели на столько глобальные изменения подвергают эти программы?




      Выборка из БД ARINC424 по любым столбцам
      Выборка из БД ARINC424 по любым столбцам

      Аналогично программе для получения выборки из БД в формате ARINC-424 по коду раздела (5 колонка) и коду подраздела (6 или 13 колонка), данная программа позволяет делать более сложные выборки - с учетом значений любых столбцов базы данных. Программа позволяет сделать любую выборку по заданным пользователем параметрам, точнее по значениям, введенным в любой столбец - хоть во все 132. В приведенном примере сделана выборка из БД -...




      Проблема идиотских NOTAM
      Проблема идиотских NOTAM

      Это всё совершенно нелепо. Мы передаём самую важную полётную информацию, используя систему, изобретенную в 1920 году в формате, который не менялся с 1924 года. При этом мы зарываем в кучу нечитабельного, бесполезного информационного мусора важную информацию, не знание которой может стать для пилотов причиной потери работы, авиакомпании – своих самолетов или жизней пассажиров. Да, Австралийская CASA, это вы! Да, греческие CAA,...




      Фразы про ЛИЦО (FACE)
      Фразы про ЛИЦО (FACE)

      Выражения, в которых используется слово ЛИЦО (face), использование их в повседневной речи и сравнение с русскими аналогами.   1. FACE THE MUSIC (досл.: «встретить музыку») По-русски это означает: держать ответ за что-либо, расплачиваться, "расхлёбывать кашу".Пример: You’ve made a mistake; now you’ll have to face the music.Ты совершил ошибку, теперь тебе придется за нее расплачиваться.




      Содержимое файла hosts
      Содержимое файла hosts

      Многие рядовые и слегка продвинутые пользователи компьютеров много лет пользовались ими и не подозревали о существовании какого-то файла по имени hosts, не имеющего фамилии (т.е. расширения). Но благодаря вирусам и неидеальности операционных систем семейства Форточек (Windows) пользователям пришлось познакомиться с этим "хостом", причем, довольно тесно.



Яндекс.Метрика
Сайт работает на быстром VPS/VDS хостинге от FASTVPS