Swift - 使文本字段的已定义范围可编辑

时间:2015-05-22 11:12:06

标签: swift uitextfield

我有一个文本字段,并希望其中一部分可编辑(而不是整个文本字段)。

我尝试了类似下面的代码,只使文本字段的前6个字符可编辑。但是,没有任何成功。

@IBOutlet weak var textField: UITextView!

textField.editable(NSRange(location: 0, length: 6)) = true

有谁知道解决这个问题?

感谢您的支持!

2 个答案:

答案 0 :(得分:1)

让用户只输入6个字符和数字,我一直在用这个.. !! 在视图控制器中使用此功能

http://localhost:8000/appservices

并将其放在viewDidAppear

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
    var result = true
    let prospectiveText = (textField.text as NSString).stringByReplacingCharactersInRange(range, withString: string)

    if textField == textField {
        if count(string) > 0 {
            let disallowedCharacterSet = NSCharacterSet(charactersInString: "0123456789").invertedSet
            let replacementStringIsLegal = string.rangeOfCharacterFromSet(disallowedCharacterSet) == nil

            let resultingStringLengthIsLegal = count(prospectiveText) <= 6

            let scanner = NSScanner(string: prospectiveText)
            let resultingTextIsNumeric = scanner.scanDecimal(nil) && scanner.atEnd

            result = replacementStringIsLegal &&
                resultingStringLengthIsLegal &&
            resultingTextIsNumeric
        }


    }
    return result
}

并继承

textField.delegate = self

希望此代码能解决您的问题。

答案 1 :(得分:-1)

两个并排或重叠的文本字段怎么样?一个可以编辑,另一个不可编辑。您可以调整边框以使其看起来无缝。

enter image description here