gpt4 book ai didi

ios - 设置自定义 UITextField 最大长度

转载 作者:行者123 更新时间:2023-11-28 22:44:40 30 4
gpt4 key购买 nike

我找不到解决我问题的方法,因为所有其他帖子都在 stackOverflow引用使用 IDE 而不是以编程方式创建的 UITextField。

我在 (void)viewDidLoad 中创建了一个自定义 UITextField。我以编程方式创建了它,因此我可以访问 leftView 属性。

    UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(10, 66, screenAdj, 30)];
textField.borderStyle = UITextBorderStyleRoundedRect;
textField.font=[UIFont fontWithName:@"Helvetica" size:14];
textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
textField.returnKeyType = UIReturnKeyDone;
textField.clearButtonMode = UITextFieldViewModeWhileEditing;
[textField addTarget:self action:@selector(textFieldShouldReturn:)forControlEvents:UIControlEventEditingDidEndOnExit];
textField.text=[defaults stringForKey:@"username"];

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 40)];
label.font=[UIFont fontWithName:@"Helvetica" size:14];
label.text = @"Your name";
label.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.0];
textField.leftViewMode = UITextFieldViewModeAlways;
textField.leftView = label;

我还想限制 TextField 实现中的最大字符数:

- (BOOL)textField:(UITextField *) textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

NSUInteger oldLength = [textField.text length];
NSUInteger replacementLength = [string length];
NSUInteger rangeLength = range.length;

NSUInteger newLength = oldLength - rangeLength + replacementLength;

BOOL returnKey = [string rangeOfString: @"\n"].location != NSNotFound;

return newLength <= MAX_LENGTH_USERNAME || returnKey;
}

但我意识到我的 textField 没有“看到”上述功能。尝试使用

[textField addTarget:self action:@selector(...

但运气不好。有帮助吗?

最佳答案

您必须告诉您的 View Controller 遵守 UITextFields 委托(delegate)协议(protocol)。在您的 (.h) 中添加 <UITextFieldDelegate>在“UIViewController”之后,当您设置文本字段时,将其委托(delegate)设置为 self :

[textField setDelegate:self];

然后你可以继续删除这一行

[textField addTarget:self action:@selector(...

假设您使用它来调用 shouldChangeCharactersInRange .现在您已经设置了委托(delegate),将自动调用此方法。

关于ios - 设置自定义 UITextField 最大长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13567844/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com