-1

我正在尝试打印“。” 当我按下显示“。”的按钮时

基本上我想抓住“。” 关于 NSString 格式

所以如果我这样做

NSString *dec = [发送者当前标题];

它只是在我尝试运行时崩溃。

4

3 回答 3

1

在 Cocoa 中,所有控件都通过使用目标动作机制发送它们已被操作的通知。“目标”是任何其他对象,“动作”是该对象响应的任何选择器。按钮也不例外。

例如,您可以定义:

-(void)buttonClicked:(id)sender {
  NSLog(@"Button was clicked!");
}

您可以通过调用-setTarget:-setAction:相应的方式将其连接到按钮的目标操作。self如果您是从处理该操作的类内部执行此操作,则目标将是:

[button setTarget:self];
[button setAction:@selector(buttonClicked:)]

现在,当按下按钮时,您将在控制台中获得 NSLog() 输出。

要更新标签的值而不是使用 NSLog() 打印某些内容,您可能可以弄清楚,但是:

-(void)buttonClicked:(id)sender {
  [label setText:@"."];
}

您应该阅读 Apple 的文档,其中详细介绍了这些内容。

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaFundamentals/CommunicatingWithObjects/CommunicateWithObjects.html#//apple_ref/doc/uid/TP40002974-CH7-SW14

PS:stackoverflow 适用于所有编程语言,因此请务必使用相关编程语言标记您的问题。

于 2012-05-19T05:49:19.137 回答
0

试试这个。

 UIButton *resultButton = (UIButton *)sender;
 NSString *dec = resultButton.currentTitle;
于 2012-05-19T05:49:26.920 回答
0

尝试这样的事情

 NSString *strdec = [sender titleLabel].text;
于 2012-05-19T05:50:30.770 回答