簡體   English   中英

實時輸入字符時,如何獲取 UITextfield 的值?

[英]How do I get the value of a UITextfield as characters are being typed in real time?

我正在嘗試實時調節 UITextfield 的輸入,這意味着用戶正在輸入。 我有這個字符集需要與輸入字符串進行比較,並且在編輯時是否輸入了無根據的字符,我想中繼警報。 這是我的字符集:

let acceptedChars = NSCharacterSet(charactersInString: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_")

現在如何實時捕獲特定的文本字段並跟蹤其輸入?

嘗試這個:

 func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
        let invalidCharacters = NSCharacterSet(charactersInString: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_").invertedSet
        if let range = string.rangeOfCharacterFromSet(invalidCharacters, options: nil, range:Range<String.Index>(start: string.startIndex, end: string.endIndex)) {
            return false
        }

        return true
    }

您可以像這樣為值更改事件注冊 textField

textfield.addTarget(self, action:"textFieldDidChange", forControlEvents:UIControlEvents.EditingChanged)

func textFieldDidChange(){
    // put your code
}

它適用於您實時輸入的每個字符

var strings: NSString?

class ViewController: UIViewController,UITextFieldDelegate //設置你的文本框委托

 func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool
{  if(textField .isEqual(your textfield))
    {
    strings=string;
    let acceptedChars = NSCharacterSet(charactersInString: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_").invertedSet;

     if (strings!.rangeOfCharacterFromSet(acceptedChars.invertedSet).location != NSNotFound)
    {
        return true;
    }
    else
    {
        return false;
    }        
}
else
{
return true;
}
}

使用下面的方法

   func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool
    {
        if textField.isEqual(<textField whose value to be copied>)
        {
            <TextField to be updated>.text = (textField.text as NSString).stringByReplacingCharactersInRange(range, withString: string)
        }
    
        return true
    }

一個簡單的委托方法,真正更有效的是:

func textFieldDidChangeSelection(_ textField: UITextField) {
    print(textField.text)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM