2011-07-03 12 views
0

私は多くのUITextFieldsを持つiPhoneアプリケーションを作成しています。これは、ユーザーが一連のデータを入力する必要があります。私は、ユーザーが複数のフィールドに入力したデータを破棄することを可能にする単純な「削除」機能を持っていたいと思います。UITextFieldのコンテンツをプログラムによって削除するにはどうすればよいですか?

私は数日間この問題に苦労しました。個々のテキストフィールドに到達してテキストを変更する方法を見つけることができないようです。私のアプリは何を試しても私にエラーを投げます。

+0

はい、IB – Chris

+0

でフィールドを作成しました。テキストフィールドにIBOutletを作成しましたか? – jburns20

答えて

0

のようにTextFieldを得ることができます。

それぞれを個別に消去するコードを書くことができます。これを行うには、それぞれに対してIBOutletを作成し、それらのプロパティに空文字列を割り当てます(textプロパティ)。いくつかのフィールドしかない場合、それは最も簡単です。あなたがもっと持っているなら、それはあまり良くありません。

共通のコンテナビューのすべての子にし、そのサブビューをループすることができます。そうすれば、IBOutletの1つだけを接続する必要があります。

ビュー階層全体を再帰し、見つけたすべてのテキストフィールドを空白にすることができます。

もう1つのアプローチは、Appleによって詳しく説明されていませんが、IBOutletCollectionを使用することです。こうすることで、すべてのテキストフィールドをIBOutletCollectionに割り当ててループすることができます。これは、おそらく最も簡単で最も簡単な方法です。

+0

ちょうど新しいトランスフォーマーの映画を見てから戻ってきた...女の子がアクション映画を見に行くことを示唆するとき、あなたはいいえを言っていない! :)私はあなたが記述したIBOutletCollectionメソッドを使用しました。それは不思議とコードの1行で動作しました。私は配列を宣言し、すべての自分のテキストフィールドをIBにリンクしました。私は単純にアクションシートの配列を参照し、ボタンの1つを[inputData setValue:(nil)forKey:@ "text"]に設定しました。どのように知っているとき簡単に!ありがとう:) – Chris

2

あなただけのインターフェイスビルダーにタグプロパティを使用して、シーケンス内の各テキストフィールドにタグを割り当て、これを取り組むのは、いくつかの方法があり、この

UITextField *txtf = (UITextField*)[self.view viewWithTag:aTagValue]; 

txtf.text = @""; or nil; 
関連する問題