从IBAction获取按钮的文本

当一个IBAction被调用时:

-(IBAction) onClick1: (id) sender;

发件人传递了什么内容? 由于它通过IB连接起来,我不太确定。 我的问题是如何让按钮的文本成为传递的对象(最有可能的是NSString),以便我可以在动作实现中调用它。

-(IBAction) onClick1: (id) sender {
  NSLog(@"User clicked %@", sender);
  // Do something here with the variable 'sender'
}

其实是:

-(IBAction) onClick1: (id) sender {
  NSLog(@"User clicked %@", sender);
  // Do something here with the variable 'sender'
}

sender不是NSString ,它是id类型的。 这只是发送事件的控件。 因此,如果您的方法在点击按钮时触发,则会发送单击的UIButton对象。 您可以通过编程方式访问所有标准的UIButton方法和属性。


sender应该是启动该操作的控件。 但是,你不应该假设它的类型,而应该把它定义为一个id 。 相反,请在实际方法中检查对象的类,如下所示:

- (IBAction)onClick1:(id)sender {
    // Make sure it's a UIButton
    if (![sender isKindOfClass:[UIButton class]])
        return;

    NSString *title = [(UIButton *)sender currentTitle];
}

-(IBAction)onClick:(id) sender {
     UIButton *btn = (UIButton *)sender;

    //now btn is the same object. And to get title directly
    NSLog(@"Clicked button: %@",[[btn titleLabel] text]);
}
链接地址: http://www.djcxy.com/p/85235.html

上一篇: Get text of button from IBAction

下一篇: Python, Unicode, and the Windows console