Xcode /打印点

时间:2012-05-19 05:31:28

标签: objective-c cocoa

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

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

所以如果我这样做

  

NSString * dec = [sender currentTitle];

当我试图跑步时它就崩溃了。

3 个答案:

答案 0 :(得分:1)

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

因此,您可以定义:

-(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适用于所有编程语言,因此请务必使用相关的编程语言标记您的问题。

答案 1 :(得分:0)

试试这个。

 UIButton *resultButton = (UIButton *)sender;
 NSString *dec = resultButton.currentTitle;

答案 2 :(得分:0)

尝试类似这样的事情

 NSString *strdec = [sender titleLabel].text;