Objective c 为什么发送操作:不';性能选择器:不工作吗?

Objective c 为什么发送操作:不';性能选择器:不工作吗?,objective-c,cocoa,nsapplication,Objective C,Cocoa,Nsapplication,我有一个自定义类,它支持目标操作机制,但奇怪的是,在这种特定情况下,当我试图通过执行以下命令来调用操作时: [NSApp sendAction:action_ to:target_ from:self] 它不起作用,但这种方式可以: [target_ performSelector:action_ withObject:self]; 显然,target_和action_都有有效值 这没什么大不了的,因为我已经开始工作了 我就是不明白为什么-[NSApplication-sendAction:

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

[NSApp sendAction:action_ to:target_ from:self]
它不起作用,但这种方式可以:

[target_ performSelector:action_ withObject:self];
显然,
target_
action_
都有有效值

这没什么大不了的,因为我已经开始工作了


我就是不明白为什么
-[NSApplication-sendAction:to:from:://code>不起作用,因为这看起来是一个非常基本的操作。我过去一直在使用
sendAction:…
,没有问题,但这两者之间似乎有一些显著的区别,除此之外,
sendAction
有一种机制,可以在目标为
nil
时查找响应消息的对象,您确定
NSApp
在执行
sendAction:to:from:
时不是
nil

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

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