从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