在Swift中计算UITextInput文本值长度的最佳方法?

时间:2015-06-05 13:41:59

标签: swift uitextfield

我有两个UITextInput控件,我想计算其中的字符数。

对于上下文,我有两个输入:一个用于电子邮件地址,一个用于密码。我还有一个“登录”按钮。默认情况下该按钮处于非活动状态,但只要在两个输入中输入至少一个字符,我将以编程方式启用该按钮。这是为了防止登录尝试,直到用户在两个字段中都输入了值。

到目前为止,我正在使用这种方法:

if count(emailInput.text) > 0 && count(passwordInput.text) > 0 {
    // Enable button
} else {
    // Disable button
}

使用count()功能是否可以接受?或者,还有更好的方法?我记得有一些问题需要检查iOS / Swift中的字符串长度。

3 个答案:

答案 0 :(得分:12)

就我个人而言,以下代码在过去一直运作良好。

if (!emailInput.text.isEmpty && !passwordInput.text.isEmpty) { 
// enable button
} else {
// disable button
}

答案 1 :(得分:4)

if((emailInput.text!.characters.count) > 0 && (passwordInput.text!.characters.count) > 0) {
    // Enable button
} else {
    // Disable button
}

答案 2 :(得分:2)

Swift 4

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="http://cdn.jsdelivr.net/jquery.validation/1.15.1/jquery.validate.min.js"></script> <form id="billmanagementform"> <div class="col-sm-2 col-md-2 col-xs-4"> <select name="cardExpYear" id="cc-exp-month" class="wide100 required"> <option value="" selected="selected">Month</option> <option value="01">01</option> <option value="02">02</option> <option value="03">03</option> <option value="04">04</option> <option value="05">05</option> <option value="06">06</option> <option value="07">07</option> <option value="08">08</option> <option value="09">09</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> </select> </div> <div class="col-sm-4 col-md-4 col-xs-8"> <select name="cardExpYear" id="cc-exp-year" class="wide100 required"> <option value="" selected="selected">Year</option> <option value="2016">2016</option> <option value="2017">2017</option> <option value="2018">2018</option> <option value="2019">2019</option> <option value="2020">2020</option> <option value="2021">2021</option> <option value="2022">2022</option> <option value="2023">2023</option> <option value="2024">2024</option> <option value="2025">2025</option> </select> </div> <input type="submit" /> </form>

Swift 2

emailInput.text!.count

但是如果你需要做一些更优雅的事情,你可以创建一个像这样的扩展

现在,将self.emailInput.text!.characters.count 直接放在count属性后,我的猜测就是直接使用它而不进行扩展,但如果您想要隔离这类内容,请继续!。

text