一旦按下发送按钮,是否有重置 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/