Org*_*cat 30 iphone cocoa objective-c interface-builder
调用IBAction时:
-(IBAction) onClick1: (id) sender;
Run Code Online (Sandbox Code Playgroud)
发件人传递了什么?由于它通过IB连接起来,我不太确定.我的问题是如何让按钮的文本成为传递的对象(最有可能是NSString),以便我可以在动作实现中调用它.
-(IBAction) onClick1: (id) sender {
NSLog(@"User clicked %@", sender);
// Do something here with the variable 'sender'
}
Run Code Online (Sandbox Code Playgroud)
Mat*_*all 60
本sender应是启动操作的控制.但是,您不应该假设它的类型,而应该将它定义为id.而是在实际方法中检查对象的类,如下所示:
- (IBAction)onClick1:(id)sender {
// Make sure it's a UIButton
if (![sender isKindOfClass:[UIButton class]])
return;
NSString *title = [(UIButton *)sender currentTitle];
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*c W 25
它实际上是:
-(IBAction) onClick1: (id) sender {
NSLog(@"User clicked %@", sender);
// Do something here with the variable 'sender'
}
Run Code Online (Sandbox Code Playgroud)
sender不是NSString,它是类型id.它只是发送事件的控件.因此,如果在单击按钮时触发您的方法,UIButton则将发送单击的对象.您可以以UIButton编程方式访问所有标准方法和属性.
Gam*_*ing 14
-(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]);
}
Run Code Online (Sandbox Code Playgroud)
VSN*_*VSN 10
只需编写以下代码即可
-(IBAction) getButtonTitle:(id)sender
{
UIButton *button = (UIButton *)sender;
NSString *buttonTitle = button.currentTitle;
NSLog(@"Button Title %@",buttonTitle);
}
Run Code Online (Sandbox Code Playgroud)
多数民众赞成......你做到了!!!
| 归档时间: |
|
| 查看次数: |
86867 次 |
| 最近记录: |