Для того, чтобы пользователи приложения не тыкали своими шаловливыми ручками куда попало не могли вводить заведомо не корректный текст, можно реализовать ряд ограничений для них.
На сайтах обычно это реализуется с помощью 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). Чтобы такого не было, придется немного дополнительно поколдовать с кодом.
Отображение номера версии iOS-приложения в интерфейсе программы считается хорошим тоном, ибо пользователь должен иметь возможность легко, быстро и просто узнать его для каждого установленного приложения. Если у приложения также указывается номера билда (номер сборки), то его тоже нужно отображать для полной картины. Соответственно, номера приложения и сборки (при необходимости) нужно показывать в каком-то месте...
Федеральное управление гражданской авиации США (Federal Aviation Administration, FAA) разрешило пилотам авиакомпании American Airlines использовать в полете планшеты iPad для просмотра электронных карт и чтения летной документации. Разрешение вступает в силу в пятницу, 16 декабря 2011 г. Сначала планшеты будут применяться на Boeing 777, а потом и на других типах самолетов из флота American...
Программы Jeppesen eLink for Windows и JeppView позволяют распечатывать схемы аэродромов, в том числе и с помощью виртуальных принтеров - сохранять в формате PDF. Иногда может возникнуть необходимость (например, в образовательных целях) использовать часть схемы аэродрома, удалив часть объектов, либо, наоборот - внести в нее некоторые поправки и добавить дополнительные данные
В 1982 году Ларри Уолтерс, пенсионер из Лос-Анджелеса решил осуществить давнюю мечту - полететь, но не на самолете. Он изобрел собственный способ путешествовать по воздуху. Уолтерс привязал к удобному креслу сорок пять метеорологических шаров, наполненных гелием, каждый из которых имел метр в диаметре. Он уселся в кресло, взяв запас бутербродов, пиво и дробовик. По сигналу, его друзья отвязали веревку,...
Как разделить текстовый файл построчно на несколько отдельных файлов и удалить часть строки? Бесплатно, без СМС, и без Python! Как-то при тестировании процесса ввода в оборот маркированного товара пришлось иметь дело с большим количеством кодов SGTIN...
В процесе развития авиационной отрасли эволюционируют и требования к бортовому и наземному оборудованию. Новое оборудование должно быть более надежным, более точным и более простым с точки зрения внедрения и эксплуатации. Соответственно, для него определяются новые требования - более жесткие по сравнению с предыдущими.
Иногда в панели управления сервером ISP Manager Lite в интерфейсе могут быть "глюки", например, отсутствие некоторых элементов управления или всплывающие окна с указанием на ошибку.