0

我正在尝试在目标 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 回答