为什么sendAction:在performSelector:不起作用?

时间:2011-09-21 16:50:17

标签: objective-c cocoa nsapplication

我有一个支持目标操作机制的自定义类,但奇怪的是在这个特定情况下,当我尝试通过执行来调用该操作时:

[NSApp sendAction:action_ to:target_ from:self]

它不起作用,但这样做:

[target_ performSelector:action_ withObject:self];

显然,target_action_都有有效值。

当我开始工作时,这不是什么大问题。

我无法弄清楚为什么-[NSApplication sendAction:to:from:]不起作用,因为这看起来像一个非常基本的操作。我过去一直在使用sendAction:...而没有问题但是这两者之间似乎有一些显着的区别,除了sendAction有一个机制来寻找一个响应的对象如果目标是nil,则会显示消息。

1 个答案:

答案 0 :(得分:0)

当您NSApp时,您确定nil不是sendAction:to:from:吗?

如果是的话,什么都不会发生。要确保NSApp是有效对象,请至少执行一次[NSApplication sharedApplication],或将它们合并:

[[NSApplication sharedApplication] sendAction:action_ to:target_ from:self];