我想UITextField
通过将 a 限制为四个字符来自定义它。我试图了解代表是如何工作的,Objective-C
并已通过以下步骤来实现此功能,但仍然没有获得有效的解决方案。
1) 创建了一个 LimitedLengthTextField 目标 c 类。制作类型的类UITextField
并接受 < UITextFieldDelegate > 类型的对象。
LimitedLengthTextField.h:
@interface LimitedLengthTextField : UITextField <UITextFieldDelegate>
@end
2)在LimitedLengthTextField.m中实现如下方法:
@implementation LimitedLengthTextField
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSUInteger newLength = [textField.text length] + [string length] - range.length;
return (newLength > 4) ? NO : YES;
}
@end
3) 在我的 CreateAccount 类中导入“LimitedLengthTextField.h”,并尝试viewDidLoad
如下设置 UITextField“ssnTextField”的委托(我的应用程序接受用户 SSN 的最后 4 位数字)。
// Set the custom SSN textfield delegate
LimitedLengthTextField *custTextField = [[LimitedLengthTextField alloc] init];
[self.ssnTextField setDelegate:custTextField];
基于我对Objective-C
委托的有限理解,我现在创建了一个类,实现了我想要的委托方法,然后创建了该类的一个实例并将其分配给我的 UITextView 对象。我错过了什么?