目标 c - 单击状态项应开始操作,但不开始



我有一个状态项,并希望在用户单击它时发生几个动作。一些在线帮助和文档帮助我走了这么远。

头文件如下:

- (IBAction)updateStatusItem:(id)sender;

类.m文件有:

    [statusItem setAction:@selector(updateStatusItem:)];

我已经在applicationDidFinishLaunching和awakeFromNib中尝试过了。

还有在m文件中:

-(IBAction)updateStatusItem:(id)sender{
NSLog(@"updateStatusItem worked");}

从我可以看到这是有意义的,但每当我点击状态项,菜单只是正常下拉,消息不被记录。我想也许我必须以某种方式在IB中链接它,但据我所知,在IB中没有状态项的表示,这一切都是通过编程完成的。我知道这是可以做到的,但这对我不起作用。你们能看出什么不对劲吗?

谢谢你的帮助

对于要发送的操作消息,您需要有可以发送它的地方。这意味着您还必须设置对象的target,该对象是您希望调用操作选择器的对象:

[statusItem setAction:@selector(updateStatusItem:)];
[statusItem setTarget:yourController];

当动作被触发时,这将调用控制器对象的‑updateStatusItem:方法。

然而,你不能有一个使用目标/动作的状态项,它也有一个菜单。如果您的状态项有一个菜单,那么它将总是通过单击状态项来触发,并且状态项的目标和操作将被简单地忽略。

最新更新