Форум программистов, компьютерный форум CyberForum.ru

Text Field огранисения - Swift

Восстановить пароль Регистрация
 
kabudasay
 Аватар для kabudasay
3 / 3 / 1
Регистрация: 13.04.2015
Сообщений: 51
25.07.2016, 14:46     Text Field огранисения #1
У меня есть два поля в которые я хочу вводить значения
но я бы хотел ограничить значения, типа защита от дурака.
в первое поле я могу вводить только цифры от 70 до 3200
а во второе я могу вводить только цифры от 70 до 2240

ограничение по символам не интересуют это я умею. Вот все перерыл а найти не могу... подскажите кто нибудь или подкиньте идеи
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2016, 14:46     Text Field огранисения
Посмотрите здесь:

Не работает выборка типа <pole1> like '%<text>%' or <pole2> like '%<text>%' C#
Условие выборки select * from table, table1 where table.field like table1.field+'%' C# ASP.NET
результат выборки из БД: rs.next(); String text=rs.getString('text'); <input type=text name=name value=<%=text%>> Java
Visual Basic ActiveX Control: Form1.Show bvModal if(Form1.Text1.Text <> '') then UserControl.Text2.Text = Form1.Text1.Text
В переменной text хранится текст. При выводе его в шаблон echo $text стоят теги, которые почему-то должны были интерпретироваться PHP
Как сделать, чтобы из НД-считалось поле пол в edit1.Text и edit2.Text количество полов? Delphi БД Другое
Переместить текст в text field на задний план
Delphi Спарсить текст между тегами <text> и </text>
HTML, CSS Не работает @media для input[text-field]
JavaFX Text Field
Text field Вытащить значение Swift
C# Ошибка "A field initializer cannot reference the non-static field, method, or property"

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pobeda
1 / 1 / 1
Регистрация: 08.10.2015
Сообщений: 28
27.07.2016, 16:58     Text Field огранисения #2
надо при каждом вводе проверить 1. что это цифра, 2. что он в этом диапазоне 3. если нет то выводить алерт

такое подайдет ?
kabudasay
 Аватар для kabudasay
3 / 3 / 1
Регистрация: 13.04.2015
Сообщений: 51
29.07.2016, 10:57  [ТС]     Text Field огранисения #3
я реализовал немного по другому, во первых я вывел на панель max Leight

создаем файл в проекте textField.swift

пишем в него


Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import UIKit
 
private var maxLengths = [UITextField: Int]()
 
extension UITextField {
  
  @IBInspectable var maxLength: Int {
    get {
      guard let length = maxLengths[self] else {
        return Int.max
      }
      return length
    }
    set {
      maxLengths[self] = newValue
      
      addTarget(
        self,
        action: #selector(limitLength),
        forControlEvents: UIControlEvents.EditingChanged
      )
    }
  }
  
  func limitLength(textField: UITextField) {
    guard let prospectiveText = textField.text
      where prospectiveText.characters.count > maxLength else {
        return
    }
    
  
    let selection = selectedTextRange
    text = prospectiveText.substringWithRange(
      Range<String.Index>(prospectiveText.startIndex ..< prospectiveText.startIndex.advancedBy(maxLength))
    )
    selectedTextRange = selection
  }
  
}
появляется вот такое Смотреть тут

а далее допиливаем логику по текстфилду
Pobeda
1 / 1 / 1
Регистрация: 08.10.2015
Сообщений: 28
31.07.2016, 08:44     Text Field огранисения #4
классное решение, не плохо было добавить комментарии к коду, новичкам будет легче понять
kabudasay
 Аватар для kabudasay
3 / 3 / 1
Регистрация: 13.04.2015
Сообщений: 51
01.08.2016, 10:13  [ТС]     Text Field огранисения #5
ну там и так собственно все понятно, ну если настаиваете )

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import UIKit
 
private var maxLengths = [UITextField: Int]()
 
extension UITextField {
  
  @IBInspectable var maxLength: Int {
    get {
      guard let length = maxLengths[self] else {
        return Int.max
      }
      return length
    }
    set {
      maxLengths[self] = newValue
      // Any text field with a set max length will call the limitLength
      // method any time it's edited (i.e. when the user adds, removes,
      // cuts, or pastes characters to/from the text field).
      addTarget(
        self,
        action: #selector(limitLength),
        forControlEvents: UIControlEvents.EditingChanged
      )
    }
  }
  
  func limitLength(textField: UITextField) {
    guard let prospectiveText = textField.text
      where prospectiveText.characters.count > maxLength else {
        return
    }
    
    // If the change in the text field's contents will exceed its maximum length,
    // allow only the first [maxLength] characters of the resulting text.
    let selection = selectedTextRange
    text = prospectiveText.substringWithRange(
      Range<String.Index>(prospectiveText.startIndex ..< prospectiveText.startIndex.advancedBy(maxLength))
    )
    selectedTextRange = selection
  }
  
}
Добавлено через 9 минут
Вот еще запрещаем знаки или ввод любых символов которые мы захотим

и так создаем файл
AllowedCharsTextField




Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import UIKit
 
// turn on UITextFieldDelegate @ important!
class AllowedCharsTextField: UITextField, UITextFieldDelegate {
  
  @IBInspectable var allowedChars: String = ""
  
  required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    delegate = self
    autocorrectionType = .No
  }
  
  func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
    let currentText = textField.text ?? ""
    let prospectiveText = (currentText as NSString).stringByReplacingCharactersInRange(range, withString: string)
    return prospectiveText.containsOnlyCharactersIn(allowedChars)
  }
  
}
 
 
extension String {
  
  // Returns true if the string contains only characters found in matchCharacters.
  func containsOnlyCharactersIn(matchCharacters: String) -> Bool {
    let disallowedCharacterSet = NSCharacterSet(charactersInString: matchCharacters).invertedSet
    return self.rangeOfCharacterFromSet(disallowedCharacterSet) == nil
  }
  
}

далее идем в VC



Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import UIKit
 
class ViewController: UIViewController {
 
// connect the input
  @IBOutlet weak var freakyTextField: AllowedCharsTextField!
  
  
  override func viewDidLoad() {
    super.viewDidLoad()
    
    
    // freakyTextField has a 10-character limit and
    // accepts only characters from the word "freaky".
    freakyTextField.maxLength = 10
    freakyTextField.allowedChars = "freaky"
  }
 
  override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
  }
  
  // Tapping on the view should dismiss the keyboard.
  override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    view.endEditing(true)
  }
 
}
Pobeda
1 / 1 / 1
Регистрация: 08.10.2015
Сообщений: 28
01.08.2016, 14:03     Text Field огранисения #6
спасибо
Yandex
Объявления
01.08.2016, 14:03     Text Field огранисения
Ответ Создать тему
Опции темы

Текущее время: 11:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru