108

インターフェース ビルダーからドラッグして IBAction をボタンに追加する方法は知っていますが、時間を節約し、何度も何度も切り替えるのを避けるために、プログラムでアクションを追加したいと考えています。解決策はおそらく非常に単純ですが、検索しても答えが見つからないようです。ありがとうございました!

4

10 に答える 10

227

これを試して:

スイフト4

myButton.addTarget(self,
                   action: #selector(myAction),
                   for: .touchUpInside)

Objective-C

[myButton addTarget:self 
             action:@selector(myAction) 
   forControlEvents:UIControlEventTouchUpInside];

Apple のドキュメントに豊富な情報源があります。UIButton のドキュメントを見ると、 UIButton がUIControlの子孫であり、ターゲットを追加するメソッドを実装していることがわかります。

--

myActionin の 後にコロンを追加するかどうかに注意する必要があります。action:@selector(myAction)

ここに参照があります。

于 2011-04-30T17:26:51.927 に答える
14
CGRect buttonFrame = CGRectMake( 10, 80, 100, 30 );
        UIButton *button = [[UIButton alloc] initWithFrame: buttonFrame];
        [button setTitle: @"My Button" forState: UIControlStateNormal];
        [button addTarget:self action:@selector(btnSelected:) forControlEvents:UIControlEventTouchUpInside];
        [button setTitleColor: [UIColor redColor] forState: UIControlStateNormal];
[view addSubview:button];
于 2012-02-11T05:59:56.300 に答える
6

スイフト3の場合

最初にボタン アクションの関数を作成し、次に関数をボタン ターゲットに追加します。

func buttonAction(sender: UIButton!) {
    print("Button tapped")
}

button.addTarget(self, action: #selector(buttonAction),for: .touchUpInside)
于 2016-12-24T16:13:17.000 に答える
2

UIButtonから継承しUIControlます。これには、アクションを追加/削除するためのすべてのメソッドがあります: UIControl Class Reference– sendAction:to:forEvent:およびをカバーするセクション「アクション メッセージの準備と送信」を参照してください– addTarget:action:forControlEvents:

于 2011-04-30T17:27:04.403 に答える
1
 UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self 
       action:@selector(aMethod1:)
forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"Show View" forState:UIControlStateNormal];
button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
[view addSubview:button];   
于 2014-04-16T09:07:54.457 に答える