Для того, чтобы пользователи приложения не тыкали своими шаловливыми ручками куда попало не могли вводить заведомо не корректный текст, можно реализовать ряд ограничений для них.
На сайтах обычно это реализуется с помощью JS-скриптов, которые, теоретически, могут быть оключены пользователем на глобальном уровне, и все ограничения, реализованные с помощью JS перестанут действовать.
В iOS-приложении пользователь ничего отключить не сможет :)
Дале - примеры кода...
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
}
@IBAction func digitLimitSize(_ sender: UITextField) {
if sender.text!.lengthOfBytes(using: String.Encoding.utf8) > 2 {
sender.text = String(sender.text!.prefix(2))
}
}
В данном примере - это 2-значное число.
Ограничение настроено на событие Editing Changed.
Добавить во 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). Чтобы такого не было, придется немного дополнительно поколдовать с кодом.
Помню, что в 80-тых годах время в Ульяновске отличалось от московского на 1 час и соответствовало самарскому времени. Потом в 1989 году в Ульяновске сделали московское время. И все жили в унисон с Москвой, и было это удобно, в принципе. Но нашлись умники, которые стали ныть, что их утром по утрам солнце слишком рано будит, а вечером, якобы, темнеет слишком быстро, и надо это все срочно исправить в целях...
Многие создатели сайтов на Joomla используют собственные классы для различных объектов CSS. Это могут быть классы, например, для таблиц или изображений. Начиная с Joomla версии 2.5 эта популярная CMS использует поддержку технологии "Lightbox", и теперь для получения этого эффекта не нужно устанавливать сторонние расширения, все уже реализовано в самом движке Joomla, достаточно только в редакторе...
Aviation English by Henry Emery & Andy Roberts - новый курс английского языка, предназначенный для подготовки летных специалистов (пилотов, борт-радистов, штурманов и авиадиспетчеров) к 4-му уровню владения английским языком по шкале ИКАО. Материал Aviation English by Henry Emery & Andy Roberts отвечает всем требованиям, предъявляемым к языковой подготовке авиаперсонала (DOC 9825 ИКАО – «ICAO...
Один программист при устройстве на работу получил задание - написать программу, которая выводит на экран числа от 1 до 100. При этом вместо чисел, кратных трем, программа должна выводить слово «Fizz», а вместо чисел, кратных пяти — слово «Buzz». Если число кратно и 3, и 5, то программа должна выводить слово «FizzBuzz».
Многие рядовые и слегка продвинутые пользователи компьютеров много лет пользовались ими и не подозревали о существовании какого-то файла по имени hosts, не имеющего фамилии (т.е. расширения). Но благодаря вирусам и неидеальности операционных систем семейства Форточек (Windows) пользователям пришлось познакомиться с этим "хостом", причем, довольно тесно.
Многие современные гаджеты имеют встроенную фото/видео камеру (а то и даже две): планшеты, видео регистраторы, мобильные телефоны... Последние по причине очень широкого распространения довольно часто используются владельцами в качестве средства фото или видеофиксации. Причем, зачастую совершенно не задумываясь над итогом, держат мобильный телефон так, как удобнее, а не так, как нужно для...
Начиная с версии какой-то 3.xxxx в программе uTorrent появилась реклама. Причем, реклама довольно агрессивная - даже в те минуты, а иногда - секунды, когда программа uTorrent не свернута в трей, ее реклама успевает надоесть. Хорошо, что разработчики приложения uTorrent дали возможность пользователям программы через настройки отключить рекламу.