gpt4 book ai didi

ios - 在每次编辑 UITextField 时调用一个方法

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

我现在正在编写一个简单的应用程序,它有 3 个 UITextField,如果我编辑一个,其他两个应该一起缩放。

我试过用

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

这个方法,但是:

  • 替换字符串是输入的最后一个字符
  • 不知道退格键在那里是如何工作的
  • 它被调用有点太早了

如果我能“修复”第一点(通过发送

[NSString stringWithFormat:@"%@%@", [textField text], string];

作为参数),它不会“修复”第二点,因为 string 变量是:

(lldb) po string
(NSString *) $1 = 0x0080cf14 <object returned empty description>

所以问题是:是否有任何方法在 textFieldShouldChangeCharactersInRange: 之后被调用?或者有没有办法:

  • textFieldShouldChangeCharactersInRange: 方法中返回 YES
  • 然后调用一个方法来更改其他 2 个 UITextField 的值?

编辑

我可以使用以下内容:

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
[self performSelector:@selector(myMethod:) withObject:textField afterDelay:0.1];
return YES;
}

但这似乎不是最安全的解决方案

最佳答案

退格键可以用空字符串修改 NSRange。您可以做的是修改 textField:shouldChange 中的三个文本字段,然后向该方法返回 NO。

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
textField.text = [textField.text stringByReplacingCharactersInRange:range withString:string]; // this is what will happen if you return yes to this method

anotherTextField.text = // do whatever u need
yetAnotherTextField.text = // do whatever u need
return NO;
}

关于ios - 在每次编辑 UITextField 时调用一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19028876/

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