2

UILabel クラスに関する質問がありました。UITextField コントロールには、編集が変更されたときのデリゲートがあることは知っていますが、UILabel に同様のフィールドがあるかどうか疑問に思っていました。私が尋ねる理由は、特定の情報が変更されたときにアプリケーションがネットワークにクエリを実行し、それに応じてそれらを更新するためです。小さなタスクを実行するためだけに、監視したいラベルの名前を更新でハードコーディングしたくありません。それに関して。私のクラスがこの情報を監視できるように、デリゲートまたはそれに相当するものがあれば、それは素晴らしいことです。

そうでない場合は、アドバイスをいただければ幸いです。

4

2 に答える 2

19

KVO を使用して、テキストが次のように変更されたときにコードを見つけたり実行したりできます。

[somelabel addObserver:self forKeyPath:@"text" options:NSKeyValueObservingOptionNew context:NULL];

そして、このような変更をリッスンします

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {

    NSLog(@"the text changed");
}
于 2012-02-01T16:30:02.527 に答える
1

AUILabelは、コードを実行せずにテキストを変更することはできません。UITextFieldユーザーはテキストを編集できるため、テキストが変更されたときに通知されます。

したがって、基本的には、いいえ、デリゲート メソッドはなく、それも必要ないはずです。

于 2012-02-01T16:24:56.730 に答える