Форум программистов, компьютерный форум, киберфорум
Наши страницы
Swift
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
kabudasay
3 / 3 / 1
Регистрация: 13.04.2015
Сообщений: 51
#1

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

25.07.2016, 14:46. Просмотров 1043. Ответов 5
Метки нет (Все метки)

У меня есть два поля в которые я хочу вводить значения
но я бы хотел ограничить значения, типа защита от дурака.
в первое поле я могу вводить только цифры от 70 до 3200
а во второе я могу вводить только цифры от 70 до 2240

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

Text field Вытащить значение
Приветствую вас уважаемые программисты) Поставил себе цель освоить Xcode и...

Переместить текст в text field на задний план
Добрый день. Как в объекте text field переместить дефолтный текст на задний...

Text Field
/* * To change this license header, choose License Headers in Project...

Не работает @media для input[text-field]
@media all and (max-width: 1024px) { input {font-size: 14px;...

результат выборки из БД: rs.next(); String text=rs.getString('text'); <input type=text name=name value=<%=text%>>
Возникла проблема в текстовое поле надо вывести результат выборки из БД ...

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

такое подайдет ?
0
kabudasay
3 / 3 / 1
Регистрация: 13.04.2015
Сообщений: 51
29.07.2016, 10:57  [ТС] #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
  }
  
}
появляется вот такое Смотреть тут

а далее допиливаем логику по текстфилду
0
Pobeda
1 / 1 / 3
Регистрация: 08.10.2015
Сообщений: 34
31.07.2016, 08:44 #4
классное решение, не плохо было добавить комментарии к коду, новичкам будет легче понять
0
kabudasay
3 / 3 / 1
Регистрация: 13.04.2015
Сообщений: 51
01.08.2016, 10:13  [ТС] #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)
  }
 
}
1
Pobeda
1 / 1 / 3
Регистрация: 08.10.2015
Сообщений: 34
01.08.2016, 14:03 #6
спасибо
0
01.08.2016, 14:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.08.2016, 14:03

Ошибка "A field initializer cannot reference the non-static field, method, or property"
Здравствуйте,объясните пожалуйста,почему возникает ошибка:&quot;A field initializer...

ActiveX Control: Form1.Show bvModal if(Form1.Text1.Text <> '') then UserControl.Text2.Text = Form1.Text1.Text
Имеется проект ActiveX Control, в нем: Form1(имеет Text1, Button1),...

Условие выборки select * from table, table1 where table.field like table1.field+'%'
Как в Оракле в условие выборки поставить такое: select * from table, table1...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru