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