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

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

它不起作用,但这种方式可以:
[target_ performSelector:action_ withObject:self];

显然 target_action_ 都有有效值。

这没什么大不了的,因为我让它工作了。

我只是不明白为什么 -[NSApplication sendAction:to:from:] 不起作用,因为这看起来像是一个非常基本的操作。过去我一直在使用 sendAction:... 没有问题,但这两者之间似乎存在一些显着差异,除了 sendAction 有一种机制来查找响应消息的对象(如果其目标是 nil )。

最佳答案

您确定 NSApp 在您执行 nil 时不是 sendAction:to:from: 吗?

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

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

10-04 18:18