gpt4 book ai didi

iphone - 仅在 shouldChangeCharactersInRange 返回 yes 后调用方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:11:11 25 4
gpt4 key购买 nike

我有一个 UITextField,它下面有一个表格,显示了可供选择的项目列表(类似于下拉列表)。现在,例如,当我在文本字段中键入 2(文本字段具有 Year 值)时,该表将显示所有以 2 作为子字符串的字符串。所以当我输入 2000 时,它只会在表中显示匹配的字符串 2000。

现在,当我在文本字段中完成输入 2000 时,我想调用一个方法。一切正常,但我只想在输入完所有 4 位数字时调用此方法,但此处当我尝试输入第 4 位数字时调用此方法。

我如何在输入 2000 的地方执行此操作,它会在输入第三个零后 shouldChangeCharactersInRange 返回 Yes 后调用该方法。

这是我的代码:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSString *substring = [NSString stringWithString:textField.text];
substring = [substring stringByReplacingCharactersInRange:range withString:string];

//if _filteredarray count==1 and substring and _filteredarray object at index 0 matches then call a method here

return YES;
}

最佳答案

试试这个

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{
NSString *substring = [NSString stringWithString:textField.text];
substring = [substring stringByReplacingCharactersInRange:range withString:string];
if(substring.length == 4)
{
[textField resignFirstresponder];
[self performSelector:@selector(functiontocall)withObject:nil afterDelay:0.8];
}
return YES;
}

上面的代码可能会给你一个想法

如果你输入 2000 的第四个字母,然后键盘会消失(如果你想你可以添加它,这将避免进一步输入值到文本字段),然后你可以看到第三个零 0.8 秒和你需要的功能调用将被调用。

关于iphone - 仅在 shouldChangeCharactersInRange 返回 yes 后调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15267181/

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