如何在IOS中实现输入文本框作为必填字段

如何在IOS中实现输入文本框作为必填字段,ios,Ios,我是Iphone开发新手。对于专家来说,这将是最简单的一个。但我在谷歌上搜索,什么也找不到 我想通过手动和编程实现输入文本框作为必填字段。在android中,它很容易实现。但我不知道如何在IOS中实现 您能告诉我怎么做吗?我不明白您的目标,但检查必填字段的最佳方法是检查其上的epty文本 if (textField.text.length == 0) { /* empty - show mandatory field alert */ } else { /* contains val

我是Iphone开发新手。对于专家来说,这将是最简单的一个。但我在谷歌上搜索,什么也找不到

我想通过手动和编程实现输入文本框作为必填字段。在android中,它很容易实现。但我不知道如何在IOS中实现


您能告诉我怎么做吗?

我不明白您的目标,但检查必填字段的最佳方法是检查其上的epty文本

if (textField.text.length == 0)
{
   /* empty - show mandatory field alert */
}
else
{
   /* contains value */
}

如果我错了,请告诉我,但我认为,基本上,您希望向您的用户提供反馈,对吗?在这种情况下,您可能有几个选项可以应用:

1-正如LML所说,您可以通过以下方式添加警报视图:

UIAlertView *yourAlert = [[UIAlertView alloc] initWithTitle:@"Your Title" message:@"Explain more" delegate:yourDelegate cancelButtonTitle:@"Ok" otherButtonTitles:nil];
请注意,只有在用户单击警报中的按钮后,如果要执行操作,才必须设置代理,否则,可以将其设置为nil。有关更多信息,请参阅

2-另一种方法是基于方法。当用户编辑该字段时,可以在其中显示反馈图标,也可以在其附近显示。默认情况下,您可以在字段中显示红十字并禁用验证按钮。当该值右转时,显示绿色复选图标并启用验证按钮

基本上,您可以这样做:

- (void) giveFeedback:(id)sender {

    // Here, field is valid when it's 7 characters long
    if (self.yourField.text.length == 7) {
        self.checkmark_img.hidden = false; // Pops out the green check
        self.uncheck_img.hidden = true;    // Hide the red cross
        self.ok_button.enabled = true;     // Enable your validation button (or anything)

    } else {
        // Contrary of above
        self.uncheck_img.hidden = false;
        self.checkmark_img.hidden = true;
        self.ok_button.enabled= false;

    }
}
在viewController的viewDidLoad中,添加以下内容:

[yourField addTarget:self action:@selector(giveFeedback:) forControlEvents:UIControlEventEditingChanged];
这样,只要修改字段的值,就会执行giveFeedback方法。这是UIControlEventEditingChanged

然后,您的反馈可以是这样的:

- (void) giveFeedback:(id)sender {

    // Here, field is valid when it's 7 characters long
    if (self.yourField.text.length == 7) {
        self.checkmark_img.hidden = false; // Pops out the green check
        self.uncheck_img.hidden = true;    // Hide the red cross
        self.ok_button.enabled = true;     // Enable your validation button (or anything)

    } else {
        // Contrary of above
        self.uncheck_img.hidden = false;
        self.checkmark_img.hidden = true;
        self.ok_button.enabled= false;

    }
}

请随意创作,例如,您可以添加一条错误消息,在值为false时打印,而不是使用红十字和绿色的复选图标。

我遇到了同样的问题,但我在本文tip4中找到了Sol

以下是答案的说明:

表单验证是可用表单的另一个关键组件。在将用户的输入发送到后端之前,您不仅需要验证用户的输入,还需要告诉用户输入是否有问题,以及如何修复

让我们以密码文本字段为例。如果密码很弱,我想显示一条错误消息。打开ViewController.swift并声明UILabel类型的出口passwordValidationLabel。如果密码不强,此标签将向用户显示错误消息。 导入UIKit

类ViewController:UIViewController{

// MARK: - Properties

@IBOutlet var firstNameTextField: UITextField!
@IBOutlet var lastNameTextField: UITextField!
@IBOutlet var passwordTextField: UITextField!
@IBOutlet var emailTextField: UITextField!

@IBOutlet var passwordValidationLabel: UILabel!
}
打开Main.storyboard并在密码文本字段下方插入标签。将标签连接到passwordValidationLabel插座

我们将实现一个简单的验证方法,当用户点击return或done键时会触发该方法。目前,我们只验证password文本字段。这就是validate(:)方法的外观。 //标记:-辅助方法

fileprivate func验证(textField:UITextField)->(Bool,String?){ guard let text=textField.text else{ 返回(假,无) }

validate(:)方法接受UITextField实例作为其唯一参数,并返回一个类型为(Bool,String?)的元组。正如我所提到的,我们目前只验证密码文本字段。该方法返回的元组包括验证结果以及向用户显示的可选错误消息

我们还需要更新textFieldShouldReturn(389;:)UITextFieldDelegate协议的方法。如果用户点击返回键时密码文本字段是第一个响应者,我们将验证文本字段的文本。只有在验证成功时,我们才将电子邮件文本字段作为第一个响应者。我们还将用错误消息更新密码验证标签,并显示或隐藏密码验证在标签上

extension ViewController: UITextFieldDelegate {

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    switch textField {
    case firstNameTextField:
        lastNameTextField.becomeFirstResponder()
    case lastNameTextField:
        passwordTextField.becomeFirstResponder()
    case passwordTextField:
        // Validate Text Field
        let (valid, message) = validate(textField)

        if valid {
            emailTextField.becomeFirstResponder()
        }

        // Update Password Validation Label
        self.passwordValidationLabel.text = message

        // Show/Hide Password Validation Label
        UIView.animate(withDuration: 0.25, animations: {
            self.passwordValidationLabel.isHidden = valid
        })
    default:
        emailTextField.resignFirstResponder()
    }

    return true
}

}
在viewDidLoad()中,我们调用助手方法setupView()。在setupView()中,我们隐藏验证标签。 //MARK:-查看生命周期

override func viewDidLoad() {
super.viewDidLoad()

// Setup View
setupView()
}

// MARK: - View Methods

fileprivate func setupView() {
// Configure Password Validation Label
passwordValidationLabel.isHidden = true
}
构建并运行应用程序以测试我们实现的验证。您可以将验证标签的文本颜色设置为红色以吸引用户的眼球。
希望这能帮助您

您希望创建什么样的强制效果?单击按钮时,用户不应将文本框保留为空。如果我在xcode中以本机方式执行此操作,我将查看我处理关闭键盘的区域,但只有在
[textFieldName.text length]时才关闭键盘>0
。在标签前面添加一个
*
,并在按钮操作中验证该字段。是的,我们可以在按钮操作中验证该字段。但是如何在中为用户显示。抱歉。我知道如何测试文本框是否没有值。但我应该向用户显示“用户名是必需的,或者此字段是必需的”在空白的if block中添加alertView我需要alertView的替代品。我需要我们在web中使用的东西。这是最好的两个文本域验证API,它可能会起到作用。请记住,alert view会在屏幕上弹出,但不会阻止任何内容。在调用它之前,当然,您不必做所有的保存工作。:)Bent,wh如果此链接可以回答问题,最好在此处包含答案的基本部分,并提供链接供参考。