現在、3 つの s を持つ単純なアプリをプログラミングしていUITextField
ます。1 つを編集すると、他の 2 つも一緒にスケーリングする必要があります。
使ってみた
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
この方法ですが、
- 置換文字列は、入力された最後の文字です
- そこでバックスペースがどのように機能するのか理解できません
- それは少し早すぎると呼ばれています
最初のポイントを「修正」できる場合(送信することにより
[NSString stringWithFormat:@"%@%@", [textField text], string];
string
パラメータとして)、変数が次のとおりであるため、2 番目のポイントは「修正」されません。
(lldb) po string
(NSString *) $1 = 0x0080cf14 <object returned empty description>
問題は、 AFTER と呼ばれるメソッドはあります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;
}
しかし、それは最も安全な解決策ではないようです