2015-03-16 3 views
1

Как ограничить количество символов, которые пользователь может ввести в текстовое поле? Мой код до сих пор выглядит следующим образом:Предельные символы в поле ввода

@IBAction func findBudget(sender: AnyObject) { 

    var enteredBudget = enterBudget.text.toInt() 

    if enteredBudget != nil { 

Я скор новичок, а это значит, я был бы счастлив, если бы вы могли бы написать мне очень точные ответы :)

ответ

0

Вот код для вас:

Если вы хотите использовать TextField

import UIKit 
// Add your UITextFieldDelegate Here 
class ViewController: UIViewController, UITextFieldDelegate { 

@IBOutlet weak var userText: UITextField! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    // Here assign delegate to self 
    self.userText.delegate = self 
} 

//Use this delegate function 
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool{ 

    var newLength:Int = (userText.text as NSString).length + (string as NSString).length - range.length 
    var remainingChar1:Int = 5 - newLength 

    return (newLength > 5) ? false : true 
    } 
} 

delegate в этой функции Я устанавливаю ограничение на 5, чтобы пользователь мог ввести только 5 символов в textFied. Вы можете установить в соответствии с вашими потребностями.

Если вы хотите использовать TextView:

import UIKit 

class ViewController: UIViewController, UITextViewDelegate { 


@IBOutlet weak var textView: UITextView! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.textView.delegate = self 
} 
func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool{ 

    var newLength:Int = (textView.text as NSString).length + (text as NSString).length - range.length 
    var remainingChar:Int = 5 - newLength 
    return (newLength > 5) ? false : true 
    } 
} 

Надеется, что это поможет.

0

Вы должны установить делегат textField «ы для просмотра контроллера и добавить:

extension ViewController: UITextFieldDelegate{ 
    func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool{ 
     let charsLimit = 5 
     return (countElements(textField.text) - range.length + countElements(string) < charsLimit) 
} 

Также вы можете установить Keyboard type на„Номер Pad“в Interface Builder в случае, если вы хотите просто цифры: enter image description here

Смежные вопросы