在 iOS 开发中,可以通过以下两种方式来结束一个 UITextField 的编辑:\n\n1. 通过设置 UITextField 的 delegate,并实现 UITextFieldDelegate 协议中的 textFieldShouldReturn: 方法。在该方法中,我们可以通过调用 resignFirstResponder 方法来结束编辑状态。示例代码如下:\n\n\n@interface ViewController () <UITextFieldDelegate>\n\n@property (nonatomic, strong) UITextField *textField;\n\n@end\n\n@implementation ViewController\n\n- (void)viewDidLoad {\n [super viewDidLoad];\n \n self.textField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 200, 30)];\n self.textField.delegate = self;\n [self.view addSubview:self.textField];\n}\n\n- (BOOL)textFieldShouldReturn:(UITextField *)textField {\n [textField resignFirstResponder];\n return YES;\n}\n\n@end\n\n\n2. 如果你想在用户点击屏幕其他区域时结束编辑,可以通过给视图添加一个 UITapGestureRecognizer 手势来实现。在手势的回调方法中,可以调用 endEditing: 方法来结束编辑状态。示例代码如下:\n\n\n@interface ViewController () <UIGestureRecognizerDelegate>\n\n@property (nonatomic, strong) UITextField *textField;\n\n@end\n\n@implementation ViewController\n\n- (void)viewDidLoad {\n [super viewDidLoad];\n \n self.textField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 200, 30)];\n [self.view addSubview:self.textField];\n \n UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];\n tapGesture.delegate = self;\n [self.view addGestureRecognizer:tapGesture];\n}\n\n- (void)handleTap:(UITapGestureRecognizer *)tapGesture {\n [self.view endEditing:YES];\n}\n\n- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {\n if ([touch.view isKindOfClass:[UITextField class]]) {\n return NO;\n }\n return YES;\n}\n\n@end\n\n\n以上是两种常用的结束 UITextField 编辑的方式,具体根据实际情况选择合适的方法。


原文地址: https://www.cveoy.top/t/topic/p5qK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录