首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么sendAction:不起作用而performSelector:起作用?

为什么sendAction:不起作用而performSelector:起作用?
EN

Stack Overflow用户
提问于 2011-09-22 00:50:17
回答 1查看 1.5K关注 0票数 5

我有一个支持target-action机制的自定义类,但奇怪的是,在这个特定的例子中,当我试图通过执行以下命令来调用操作时:

代码语言:javascript
复制
[NSApp sendAction:action_ to:target_ from:self]

它不起作用,但这种方式起作用:

代码语言:javascript
复制
[target_ performSelector:action_ withObject:self];

显然,target_action_都有有效值。

这不是什么大问题,因为我让它工作了。

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

EN

回答 1

Stack Overflow用户

发布于 2011-09-25 21:47:42

您确定在执行sendAction:to:from:操作时NSApp不是nil

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

代码语言:javascript
复制
[[NSApplication sharedApplication] sendAction:action_ to:target_ from:self];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7503577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档