iOS 如何在按下发送按钮时重置文本字段

标签 ios email uitextfield uitextview

一旦按下发送按钮,是否有重置 1 个 View Controller 中的所有文本字段的方法?

更新

刚刚尝试将此添加到我的应用程序以重置文本字段:

- (IBAction)resetAction:(id)sender {
    for (UITextField *textField in self.view.subviews) {
        textField.text = @"";
    }
}

当按下按钮时,它会使应用程序崩溃并显示错误

“以 NSException 类型的未捕获异常终止”

在查看其他人对这份报告的问题后,他们似乎忘记取消链接已删除的元素。但是,我已经取消了所有链接,甚至为此创建了一个新应用程序,只是为了确保它不是那个,当我按下按钮时它仍然向我抛出这个错误。

更新

.h文件:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
{
    IBOutlet UITextField *textField;
}
- (IBAction)resetAction:(id)sender;

@end

.m文件:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController


- (void)viewDidLoad
{
    textField = [[UITextField alloc] init];

    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}



    - (IBAction)resetAction:(id)sender {
        for (UITextField *textField in self.view.subviews) {
            textField.text = @"";
        }
    }- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

最佳答案

为了更灵活和更简洁的代码,循环遍历 self.view.subviews 数组中的每个 UIView,检查它是否属于 UITextField 类。如果是,将它们转换为 UITextField 并通过将其设置为空字符串来清除它的文本。

 for (UIView *view in [self.view subviews]) {
    if ([view isKindOfClass:[UITextField class]]) {
        UITextField *textField = (UITextField *)view;
        textField.text = @"";
    }
}

关于iOS 如何在按下发送按钮时重置文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24418594/

相关文章:

ios - 如何在 Swift 4 中按顺序执行操作

ios - 构建自己的 'Game center' 可能吗?

jQuery 电子邮件验证正则表达式问题

c# - 从 Exchange Web 服务托管 API 获取收件箱中的所有邮件并将它们存储为 .eml 文件

swift - 如何在 Swift 的 TextField 中禁用粘贴?

ios - 当我单击 Objective C 中的按钮时,为什么未从 tableViewCell 获取文本字段数据?

ios - 在 _CFAutoreleasePoolPop 崩溃

java - 我应该使用什么以及如何将错误日志从我的 java 程序发送到服务器(邮件、git 等...)

objective-c - 设置键盘类型不会影响键盘。怎么了?

ios - 如何转到导致 xcode 错误的行