したがって、最初UITextField
に、テキスト フィールドの表示を担当するクラス (ビュー コントローラーまたはカスタム ビュー) をデリゲートに設定する必要があります。他UITextFiled
の s については、各 UITextFiled に対して 1,2,3.. のようなタグを設定する必要があります (それはたくさんあると言うからですUITextFields
)
最初のデリゲートをUITextField
設定してタグを設定したら、2 つの異なるデリゲート メソッドを実装できます (必要に応じて)。
Sunnyが提供した方法で、これは即時変更用です。
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
for(int i = firstTextViewTag; i<=lastTextViewTag; i++) {
UITextView *newTextView = (UITextView *)[self.view viewWithTag:i];
//or [yourCustomView viewWithTag:i]
newTextView.text = textField.text;
}
return YES;
}
次に、ユーザーが入力を終了し、キーボードが非表示になった後にのみテキストフィールドを更新する場合は、次を使用できます。
-(void)textFieldDidEndEditing:(UITextField *)textField {
for(int i = firstTextViewTag; i<=lastTextViewTag; i++) {
UITextView *newTextView = (UITextView *)[self.view viewWithTag:i];
//or [yourCustomView viewWithTag:i]
newTextView.text = textField.text;
}
}
編集
ということでまずはdelegate
iOSで多用されるパターンです ここではの基本的な考え方を説明するチュートリアルdelegate
です。
次に、iOS が提供する一部の UI コントロールにはデリゲート インスタンスがあります (上記のチュートリアルを読めば、それが機能する理由と方法を理解できます)。デリゲートが提供する必要なメソッドをクラスが実装する場合にのみ、クラスはカスタム UI コントロールのデリゲートになることができます (注: デリゲートにもオプションのメソッドがあります)。クラスが必要なメソッドを実装していない場合は、ビルド警告が表示されます。デリゲートが設定されている行に表示されます。
第三に、この回答で使用されているメソッドは、UITextFiled のデリゲート メソッドです(Apple ドキュメントを確認してください) 。
カウントを失い[tag][3]
ました。オブジェクトを識別するために使用できる UIView のサブクラスのすべての UIView で使用できるプロパティですが、このプロパティはデフォルトで0であることに注意してください。タグ プロパティを設定するときは、値 > 0 を使用するようにしてください。 .
詳細についてはgoogle
、Apple Docs