我只想添加一个带有 setAction 参数的 NSButton。
NSRect frame = NSMakeRect(10, 40, 90, 40);
NSButton* pushButton = [[NSButton alloc] initWithFrame: frame];
[pushButton setTarget:self];
[pushButton setAction:@selector(myAction:)];
但我想给函数 myAction 一个参数...
如何 ?
谢谢。
最佳答案
你不能。
可以通过三种方式判断哪个按钮(或其他控件)正在与您对话:
sender
与每个导出进行比较。 标签的问题在于上述重复性。也很容易忽略为每个标签命名,因此您最终会查看
if ([sender tag] == 42)
之类的代码,而不知道/不必查找哪个控件是 #42。网点的问题在于你的行动方法可能会变得很长,而且可能正在做多种不同的事情,而这些事情在同一种方法中没有任何业务。 (这也是标签的问题。)
所以,我通常更喜欢第三种解决方案。为每个将您作为目标的按钮(或其他控件)创建一个操作方法。您通常会将方法和按钮命名为相同(例如
save:
和“Save”)或非常相似的名称(例如 terminate:
和“Quit”),因此您只需阅读每个方法即可知道它属于哪个按钮。关于cocoa - NSButton setAction 选择器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14104191/