0

些細な事でもお役に立てれば幸いです。

私のアプリケーションの UI の一部は動的であるため、UI 要素をプログラムで追加し、NSMutableArray に格納しています。2 つの質問があります。

1) 以下を実行しようとすると null 値が返されるのはなぜですか?

UITextField* field = [self.uiElementsForWorkItems objectAtIndex:i];
NSLog(@"title: %@", field.text);

これらが参照ではなく値のコピーである場合、どうして removeFromSuperview を正常に呼び出すことができるのでしょうか?

2) プログラムで追加された UI 要素 (つまり、UITextField.text 値) から値を取得し、それがどの要素であったかを特定できるようにするにはどうすればよいですか?

以下の解決策を見てきましたが、要素データにアクセスしたり、それを識別したりする方法はありません。

[title addTarget:self action:@selector(handlerMethod) forControlEvents:UIControlEventEditingDidEnd];
4

2 に答える 2

0

UITextField.tag プロパティを使用して、配列を使用せずに特定の要素を呼び出してみてください。(タグが一意であることを確認してください)を呼び出して

UITextField *field = (UITextField *)[self viewWithTag: tagValue];

UITextField デリゲート メソッドを使用してみてください。ほとんどの場合、デリゲートとタグで管理できます。

于 2012-05-14T20:15:27.910 に答える
0

以下を実行しようとすると null 値が返されるのはなぜですか?

おそらくfieldゼロだからです。field実際の UITextField を指している場合は、から (おそらく空の) 文字列を取得しfield.textます。textアクセサーを持たないものを指していると、クラッシュします。どうしてそうなったのか、何が含まれているのかを知っていれば助かりself.uiElementsForWorkItemsます。

プログラムで追加された UI 要素から値を取得する方法

他の UI 要素と同じように、必要なデータを要求するメッセージを送信します。メッセージを送信するには、オブジェクトへのポインターが必要です。これらの UI オブジェクトをプログラムで作成している場合は、作成時に各オブジェクトへの参照を保持するか (IBOutlet と同様)、一意のオブジェクトを割り当てるなど、後でオブジェクトを見つける方法を自分で用意する必要があります。そのtag財産に対する価値。

于 2012-05-14T20:16:40.707 に答える