1、创建与设置
复制
UITextField *textField = [[UITextField alloc] init];
textField.frame = CGRectMake(20, 100, 200, 30);
[self addSubview:textField];
textField.backgroundColor = [UIColor yellowColor];
textField.background = [UIImage imageNamed:@"pic2"];
textField.placeholder = @"请输入用户名";
textField.textColor = [UIColor redColor];
textField.textAlignment = NSTextAlignmentLeft;
textField.minimumFontSize = 10;
textField.adjustsFontSizeToFitWidth = YES;
textField.secureTextEntry = YES;
textField.clearButtonMode = UITextFieldViewModeWhileEditing;
textField.keyboardType = UIKeyboardTypeDefault;
textField.returnKeyType = UIReturnKeyJoin;
textField.autocapitalizationType = UITextAutocapitalizationTypeWords;
textField.borderStyle = UITextBorderStyleLine;
textField.leftViewMode = UITextFieldViewModeAlways;
textField.rightViewMode = UITextFieldViewModeAlways;
textField.leftView = label1;
textField.rightView = label2;
[textField becomeFirstResponder];
[textField resignFirstResponder];
textField.delegate = self;
2、变化观察
-
2.1 代理观察
- 协议方法,需遵守协议 UITextFieldDelegate,并设置代理
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
return YES;
}
- (void)textFieldDidBeginEditing:(UITextField *)textField {
}
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
return YES;
}
- (void)textFieldDidEndEditing:(UITextField *)textField {
NSLog(@"您输入的内容为:%@", textField.text);
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
return YES;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
return YES;
}
- (BOOL)textFieldShouldClear:(UITextField *)textField {
return YES;
}
-
2.2 直接监听
[textField1 addTarget:self action:@selector(textField1TextChange:) forControlEvents:UIControlEventEditingChanged];
- (void)textField1TextChange:(UITextField *)textField {
NSLog(@"textField1 - 输入框内容改变,当前内容为: %@",textField.text);
}
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textField2TextChange:) name:UITextFieldTextDidChangeNotification object:self.textField2];
- (void)textField2TextChange:(NSNotification *)noti {
UITextField *currentTextField = (UITextField *)noti.object;
NSLog(@"textField2 - 输入框内容改变,当前内容为: %@",currentTextField.text);
}
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
3、textField 的常见需求
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)