web-dev-qa-db-ja.com

Xcodeからボタンテキストを変更しますか?

Interface Builderのボタンに接続されたIBActionがあります。

ランタイム中にコード内から(IB内の)ボタンのテキストを変更することは可能ですか?

29
Linuxmint

コード内のアクションに接続されたボタンがある場合、インスタンス変数なしでタイトルを変更できます。

たとえば、ボタンがこのアクションに設定されている場合:

-(IBAction)startSomething:(id)sender;

メソッドでこれを簡単に行うことができます:

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

または、ボタンの名前を切り替えたい場合は、「buttonToggled」という名前のBOOL(たとえば)を作成し、この方法で名前を切り替えます。

-(IBAction)toggleButton:(id)sender {
    if (!buttonToggled) {
        [sender setTitle:@"Something" forState:UIControlStateNormal];
        buttonToggled = YES;
    }
    else {
        [sender setTitle:@"Different" forState:UIControlStateNormal];
        buttonToggled = NO;
    }
}
73
sudo rm -rf
UIButton *myButton;

[myButton setTitle:@"My Title" forState:UIControlStateNormal];
[myButton setTitle:@"My Selected Title" forState:UIControlStateSelected];
19
NWCoder

はい。 UIButtonにメソッドがあります-setTitle:forState:それを使用します。

5
Simon Goldeen
[myButton setTitle:@"Play" forState:UIControlStateNormal];
4
FreeAsInBeer

切り替える別の方法:

- (IBAction)signOnClick:(id)sender
{
    if ([_signOnButton.titleLabel.text isEqualToString:@"Sign off"])
    {
        [sender setTitle:@"Sign on" forState:UIControlStateNormal];
    }
    else
    {
        [sender setTitle:@"Sign off" forState:UIControlStateNormal];
    }
}
4
Robert

myapp.h

{
UIButton *myButton;
}
@property (nonatomic,retain)IBoutlet UIButton *myButton;

myapp.m

@synthesize myButton;

-(IBACtion)buttonTitle{
[myButton setTitle:@"Play" forState:UIControlStateNormal];
}
3

If {} else {}制御フローを追加する必要はありません。 ViewまたはViewControllerコンストラクターでさまざまな状態のボタンテキストを初期化します。

[btnCheckButton setTitle:@ "Normal" forState:UIControlStateNormal]; 
 [btnCheckButton setTitle:@ "Selected" forState:UIControlStateSelected];

次に、ボタンの状態を選択済みに切り替えます。

[btnCheckButton setSelected:YES];

次に、ボタンの状態を通常に切り替えます。

[btnCheckButton setSelected:NO];