如何在IOS中实现输入文本框作为必填字段
我是Iphone开发新手。对于专家来说,这将是最简单的一个。但我在谷歌上搜索,什么也找不到 我想通过手动和编程实现输入文本框作为必填字段。在android中,它很容易实现。但我不知道如何在IOS中实现如何在IOS中实现输入文本框作为必填字段,ios,Ios,我是Iphone开发新手。对于专家来说,这将是最简单的一个。但我在谷歌上搜索,什么也找不到 我想通过手动和编程实现输入文本框作为必填字段。在android中,它很容易实现。但我不知道如何在IOS中实现 您能告诉我怎么做吗?我不明白您的目标,但检查必填字段的最佳方法是检查其上的epty文本 if (textField.text.length == 0) { /* empty - show mandatory field alert */ } else { /* contains val
您能告诉我怎么做吗?我不明白您的目标,但检查必填字段的最佳方法是检查其上的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如果此链接可以回答问题,最好在此处包含答案的基本部分,并提供链接供参考。