Для того, чтобы пользователи приложения не тыкали своими шаловливыми ручками куда попало не могли вводить заведомо не корректный текст, можно реализовать ряд ограничений для них.
На сайтах обычно это реализуется с помощью 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). Чтобы такого не было, придется немного дополнительно поколдовать с кодом.
Если есть многосточный текстовый файл, который нужно разделить на части - быстро и не вручную, то есть несколько вариантов для этого. В порядке предпочтения/простоты использования и убывания приоритета:
В 1982 году Ларри Уолтерс, пенсионер из Лос-Анджелеса решил осуществить давнюю мечту - полететь, но не на самолете. Он изобрел собственный способ путешествовать по воздуху. Уолтерс привязал к удобному креслу сорок пять метеорологических шаров, наполненных гелием, каждый из которых имел метр в диаметре. Он уселся в кресло, взяв запас бутербродов, пиво и дробовик. По сигналу, его друзья отвязали веревку,...
Как гласит библейская легенда (не смотря на то, что в ней множество нестыковок, как и во всей библии - по мнению французского писателя Лео Таксиля), что при строительстве Вавилонской башни произошло нечто, и все люди стали говорить на разных языках - и из-за этого башню не удалось построить. Так и в авиации до сих пор существуют атавизмы - различные геодезические модели земного шара,...
Железо: нетбук Lenovo ~ 2010 года выпуска. Операционная система: Windows XP. Описание проблемы: при попытке подключения к сети Wi-Fi агент беспроводной сети нетбука не запрашивает пароль (а он фактически имеется), а сразу пытается подключиться. При этом постоянно отображается "Получение IP-адреса", и подключения фактически не происходит, доступа к сети Интернет нет.
Ситуация: вы подключили свой iPad или iPhone к компьютеру с помощью кабеля. Программа iTunes запустилась сама, или вы ее принудительно запустили, но функция синхронизации приложений (программ) не активна! :( Выражается это в невозможности установить/убрать галочку на Синхронизации приложений - вся станица "Программы" выглядит не активной.
Программы Jeppesen eLink for Windows и JeppView позволяют распечатывать схемы аэродромов, в том числе и с помощью виртуальных принтеров - сохранять в формате PDF. Иногда может возникнуть необходимость (например, в образовательных целях) использовать часть схемы аэродрома, удалив часть объектов, либо, наоборот - внести в нее некоторые поправки и добавить дополнительные данные
Считается, что файловая система NTFS надежнее, чем FAT32 и FAT16. Но не смотря на это все флэшки по умолчанию имеют файловую систему FAT16 (Windows отображает как просто FAT). Большинство пользователей это никак не напрягает и многие из них даже не задумываются об изменении файловой системы своей любимой флэшки. Но в последнее время из-за развития технологии и бесповоротного удешевления...