【问题标题】:Can't access "rangeOfString" in swift 3无法在 swift 3 中访问“rangeOfString”
【发布时间】:2016-10-18 05:09:35
【问题描述】:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

if(textField.tag==1) {
    if ([string isEqualToString:@" "]) {
        if (!textField.text.length) {
            return NO;
        }
        if ([[textField.text stringByReplacingCharactersInRange:range withString:string] rangeOfString:@"  "].length) {
            return NO;
        }
    }
    if ([textField.text stringByReplacingCharactersInRange:range withString:string].length < textField.text.length) {
        return YES;
    }
}
return YES;
}

在 swift 3 中,我几乎已转换,但“rangeOfString”是可访问的,所以 任何人都可以将此目标 c 转换为 swift 3

【问题讨论】:

  • 这是 Objective c 代码,向我们展示你在 Swift 3 中的尝试。
  • 我想在 swift 3 中转换这段代码
  • 这不是免费的代码翻译服务。请先自己尝试转换。用您尝试的 Swift 代码更新您的问题。说明您遇到的具体问题。

标签: ios uitextfield swift3


【解决方案1】:

Swift 3.0

在此处将 Objective c 转换为 Swift 3。祝你好运!

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {

    if(textField.tag == 1) {
        let nsString = textField.text as NSString?
        var newString = nsString?.replacingCharacters(in: range, with: string)

        if(string == " "){
            if(textField.text!.characters.count < 1){
                return false;
            }

            if (newString != nil && newString!.range(of: "  ") != nil){
                    return false;
            }
        }

        if(newString != nil && newString!.characters.count < textField.text!.characters.count){
            return true
        }
    }
    return true
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多