Ios 文本字段的最小字符数?(Swift)
我目前正在进行登录和注册(Xcode 7,Swift2)。如果用户注册并在文本字段中键入所需用户名,我希望他至少键入5个字符。因此,如果他离开文本字段并且没有输入至少5个字符,则会显示一条消息get,告诉他至少输入5个字符。 我只知道如何确定字符的最大数量,但无法根据需要进行调整。 这是我当前的代码:Ios 文本字段的最小字符数?(Swift),ios,swift,Ios,Swift,我目前正在进行登录和注册(Xcode 7,Swift2)。如果用户注册并在文本字段中键入所需用户名,我希望他至少键入5个字符。因此,如果他离开文本字段并且没有输入至少5个字符,则会显示一条消息get,告诉他至少输入5个字符。 我只知道如何确定字符的最大数量,但无法根据需要进行调整。 这是我当前的代码: import UIKit class ViewController: UIViewController,UITextFieldDelegate { // Mark: Propertie
import UIKit
class ViewController: UIViewController,UITextFieldDelegate {
// Mark: Properties
@IBOutlet weak var Username: UITextField!
@IBOutlet weak var Password: UITextField!
@IBOutlet weak var Status: UILabel!
@IBOutlet weak var DesiredUsername: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// Mark: Actions
@IBAction func CreateAccount(sender: UIButton) {
}
@IBAction func LoginButtonTapped(sender: UIButton) {
if (Username.text == "janoschvongehr" && Password.text == "test123") {
performSegueWithIdentifier("SeguetoPeople", sender: nil)
}
if (Username.text == "" || Password.text == "") {
Status.text = "Nicht alle Felder ausgefüllt"
}
self.Username.resignFirstResponder()
self.Password.resignFirstResponder()
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.view.endEditing(true)
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
self.view.endEditing(true)
return true
}
}
导入UIKit
类ViewController:UIViewController、UIExtFieldDelegate{
//马克:财产
@ibvar用户名:UITextField!
@IBOUTLE弱var密码:UITextField!
@IBOUTLE弱var状态:UILabel!
@IBMOutlet弱var DesiredUsername:UITextField!
重写func viewDidLoad(){
super.viewDidLoad()
//加载视图后,通常从nib执行任何其他设置。
}
重写函数didReceiveMemoryWarning(){
超级。我收到了记忆警告()
//处置所有可以重新创建的资源。
}
//马克:行动
@iAction func CreateCount(发件人:UIButton){
}
@iAction func LoginButtonTapped(发件人:UIButton){
如果(Username.text==“janoschvongehr”&&Password.text==“test123”){
performsguewithidentifier(“seguetople”,发件人:nil)
}
如果(Username.text==“”| | Password.text==“”){
Status.text=“Nicht alle Felder ausgefüllt”
}
self.Username.resignFirstResponder()辞职
self.Password.resignFirstResponder()辞职
}
覆盖功能触摸开始(触摸:设置,withEvent事件:UIEvent?){
self.view.endEditing(true)
}
func textField应返回(textField:UITextField)->Bool{
self.view.endEditing(true)
返回真值
}
}
我刚开始编程,所以如果你能让答案尽可能简单就好了。
谢谢大家 看起来您已经完成了90%的工作,尤其是您已经为文本字段设置了一个委托 试着做:
func textFieldShouldReturn(textField: UITextField) -> Bool {
if ( textField.text.count < 5 )
{
// create a warning label IBOutlet and set it to hidden
//
// reveal it only upon leaving the text field when the
// length is less than 5
warningLabel.hidden = false;
}
self.view.endEditing(true)
return true
}
func textField应返回(textField:UITextField)->Bool{
如果(textField.text.count<5)
{
//创建警告标签IBOutlet并将其设置为隐藏
//
//仅当
//长度小于5
warningLabel.hidden=false;
}
self.view.endEditing(true)
返回真值
}
func textField应返回(textField:UITextField)->Bool{
如果textField.text!.characters.count<5{
warningLabel.hidden=false
}
self.view.endEditing(true)
返回真值
}
应该可以了。我创建了一个警告标签,并尝试了以下操作:
func textFieldShouldReturn(textField:UITextField)->Bool{if(DesiredUsername.text.length<5){//创建一个警告标签IBOutlet,并将其设置为hidden////仅当//长度小于5 warninglabel.hidden=false;}self.view.endEditing(true)return true}
时,才在离开文本字段时显示它“textfieldshouldreturn的重新声明无效”和“字符串类型的值”没有成员长度“哇……您需要使用count
而不是length
来获取该文本字段中的字符数。此外,您是否在视图控制器中声明了两次textFieldShouldReturn
?是的,我已经为func textFieldShouldReturn(textField:UITextField)->Bool声明了textFieldShouldReturn
{self.view.endEditing(true)return true}
此外,我还遇到了“count不可用:没有通用的好答案,请参阅文档注释进行讨论”的问题。这是我当前的代码:func textField shouldReturn(textField:UITextField)->Bool{if(textField.text!.count<5){//仅当//长度小于5 warninglabel.hidden=false;}self.view.endEditing(true)return true}
差不多了!但我仍然遇到了“textFieldShouldReturn的重新声明无效”的问题刚刚命名为textFieldShouldReturn2,现在我没有显示任何问题。但是警告标签总是可见的,无论我键入什么,少于5个字符还是多于5个字符。你在类中的某个地方有另一个textFieldShouldReturn方法吗?没有,但问题已经解决了。我的问题是,警告标签是从不隐藏,无论我输入多少个字符。if textField.text!.characters.count<5{warningLabel.hidden=false}否则{warningLabel.hidden=true}怎么样?
func textFieldShouldReturn(textField: UITextField) -> Bool {
if textField.text!.characters.count < 5 {
warningLabel.hidden = false
}
self.view.endEditing(true)
return true
}