0

UIButtonのこのクレイジーな動作に気づきました。

イベント内のボタンのタッチアップで起動されるIBActionからUIButtonのキャプションを設定しようとすると、キャプションは変更されますが、すぐに古い値に戻ります。

イベント内で他のボタンのタッチアップでそれを行うと、期待どおりに機能します。

どんな猿の商売が起こっているの?

- (IBAction)removeText:(id)sender {

    [[sender titleLabel] setText:@"New Text"];

}
4

2 に答える 2

1

titleLabelは読み取り専用のプロパティです。使用したい:

[sender setTitle:@"title" forState:UIControlStateNormal];

編集:実際には、titleLabel自体のプロパティを検索することは引き続きアクセス可能ですが、それでもsetTitleソリューションがその方法です。

于 2013-01-30T18:50:15.713 に答える
0

正しい方法は次のとおりです。

- (IBAction)removeText:(id)sender {
   [(UIButton*)sender setTitle:@"New Text" forState: UIControlStateNormal];
}
于 2013-01-30T18:52:05.810 に答える