0

Objective cでシンプルなボタン、テキストフィールド、ラベルプログラムを作成しようとしていますが、ボタンに問題があります。

ファイルviewController.mには、次のコードがあります。

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchDown];

[button setTitle:@"Look up" forState:UIControlStateNormal];
button.frame = CGRectMake(20,108,97,37);
[self.view addSubview:button];

- (IBAction) buttonPressed:(id) sender  {
[_textField resignFirstResponder];
_label.text = textField.text;
}

私が理解していることから、このボタンは、テキストボックスにあるものを取得し、このボタンをクリックした後にラベルに配置することになっています。しかし、代わりに、ボタンを押すmain.mと、リターンラインに移動します。そして、それはプログラムが一時停止していると言います。プログラムをもう一度使用しようとすると、機能しません。私はこのボタンスニペットを他のコードとオンラインで照合しましたが、なぜ私のものが失敗しているのか完全には理解できません。

4

1 に答える 1

1

この行にコロンがありません

[button addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchDown];

ボタンが存在しないメソッドを呼び出しているため、クラッシュしています。

する必要があります

[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchDown];

または... buttonPressed メソッドの署名をから変更します

- (IBAction) buttonPressed:(id) sender;

    - (IBAction) buttonPressed;

ログに次のようなメッセージが表示されているはずです。

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ViewController buttonPressed]: unrecognized selector sent to instance
于 2013-02-10T03:39:22.973 に答える