0

アプリで奇妙な問題に直面しています。

ViewDidLoad()メソッドで、ボタンのタイトルを次のように設定しました。

[btnA setTitle:@"A" forState:UIControlStateNormal];

別のクリックイベントで、このタイトルの値を次のようにnilに設定します。

[btnA setTitle:nil forState:UIControlStateNormal];

しかし、上記のステートメントの直後に次のようにログを印刷すると

NSLog(@"btnA:%@",btnA.titleLabel.text);

次のようにログを出力します

btnA:A

奇妙なことに、シミュレーターでアプリを実行すると、ボタンのテキストに何も表示されないため、クリックイベントでnilになります。

推測の問題は何ですか?

4

4 に答える 4

2

次のように、タイトルを空の文字列に設定できます。

[btnA setTitle:@"" forState:UIControlStateNormal];
于 2012-05-09T13:38:32.163 に答える
1
[btnA setTitle:@"" forState:UIControlStateNormal];

または、btnA=nilを設定します。

于 2012-05-09T13:38:16.787 に答える
1

次のコードを試してください

button.titleLabel.text   = @"";

またはあなた自身のコードで遅れて試してください

- (IBAction)produceImage:(id)sender
{

     // Call another function which setthe title after delay

    [self performSelector:@selector(title:) withObject:sender afterDelay:2];

}

- (IBAction)title:(id)sender
{
   [sender setTitle:@"" forState:UIControlStateNormal];

      NSLog(@"sender:%@",sender.titleLabel.text);


}
于 2012-05-09T14:24:26.290 に答える
-1

setTitle @" " . setTitle @ "" ornil`を実行すると、ボタンから値を再度取得しても意味がありません。以前の値が表示されます。

于 2014-09-04T02:31:58.293 に答える