我正在使用" Cocoa编程为Mac OS X学习Cocoa(Objective-C版本)"每当我使用Interface Builder创建一个按钮时,我都必须将其与我目前正在使用的其中一个类连接。
当我控制从按钮到我的AppDelegate.h文件的点击拖动时,Xcode会自动将按钮挂钩到我的AppDelegate类。如果我选择"行动"它会创建一个这样的方法:
- (IBAction)onButtonPress:(id)sender {
}
Objective-C的方法是这样的:
- (returnType)methodName:(typeOfFirstArgument)firstArgumentName (typeOfSecondeArgument)secondArgumentName
为什么我必须为发件人而不是id
使用NSButton
类型?我知道我用一个按钮连接了这个方法。因此,我希望发件人是NSButton
类型的对象。
我试过了,但它没有用。
答案 0 :(得分:2)
该类型不必是id
。您可以使用创建连接时的弹出窗口或代码更改参数的类型和名称。
id
是一种类型,意思是“指向任何ObjC对象的指针”。指向特定类的指针也可以正常工作:
- (IBAction)onButtonPress:(NSButton *)importantButton;
答案 1 :(得分:0)
答案:它不必是一个id,如果你看一下弹出的小对话框,你选择“Action”并命名处理程序,你会看到你可以选择对象的实际类型,NSButton在你的例子中。