我是否可以使用普通函数而不是方法选择器作为目标 C 中的事件处理程序



我真的很不擅长目标C,我需要编写这个一键点击处理程序。目前我有这个:

NSButton *button = ...
[button setAction:buttonPressed];
// This also doesn't work
[button setAction:@selector(buttonPressed)];
void buttonPressed() { NSLog(@"Button pressed!"); }

据我了解,setAction() 需要一个有点像方法指针的选择器。我这里没有任何类,所以没有方法。有没有办法为按钮单击事件使用简单的函数?

谢谢

不,你不能只是将一些(引用a)纯C函数传递给需要Objective-C方法选择器的东西。当然,您可以将方法包装在某个类中,并从那里调用本机方法。

一个简化的解释是,该方法将被称为"在某个对象上";这就是框架在这里的工作方式。

最新更新