Objective c 在Cocoa Xcode 6情节提要Mac应用程序中,工具栏按钮保持活动状态

Objective c 在Cocoa Xcode 6情节提要Mac应用程序中,工具栏按钮保持活动状态,objective-c,xcode,cocoa,nstoolbar,nstoolbaritem,Objective C,Xcode,Cocoa,Nstoolbar,Nstoolbaritem,我正在尝试向脚本中的工具栏添加一个简单的iAction。我只是简单地将对象添加到窗口控制器中的窗口中,并将图像工具栏项拖到其中。向其中添加图像并默认放置在中。接下来,我添加了一个新类,称之为ToolbarButtons,并使用该类向窗口控制器添加了一个对象。最后,我拖动了添加到ToolbarButtons.h文件中的图像工具栏项,创建了一个iAction。在函数中,我只是向NSLog写了一些东西 即使为按钮指定了功能,按钮仍保持灰色。奇怪的是,如果我不使用自己的类而是使用AppDelegate,

我正在尝试向脚本中的工具栏添加一个简单的iAction。我只是简单地将对象添加到窗口控制器中的窗口中,并将图像工具栏项拖到其中。向其中添加图像并默认放置在中。接下来,我添加了一个新类,称之为ToolbarButtons,并使用该类向窗口控制器添加了一个对象。最后,我拖动了添加到ToolbarButtons.h文件中的图像工具栏项,创建了一个iAction。在函数中,我只是向NSLog写了一些东西

即使为按钮指定了功能,按钮仍保持灰色。奇怪的是,如果我不使用自己的类而是使用AppDelegate,那么一切都会正常工作

你知道为什么吗?如果这很重要,我将使用Xcode 6.3


谢谢

您需要阅读有关响应者链和NSUserInterfaceValidation的信息谢谢您的回答。我对objective-c相当陌生,所以我想在真正理解如何使用您的建议之前,我必须阅读很多内容。谢谢你给我指明了正确的方向。但是,如果你能再详细一点,那就太好了。因此我扩展了类->@interface-toolbarbutions:NSObject,并添加了-BOOLvalidateUserInterfaceItem:iditem;在标题和我添加的函数中:-BOOLvalidateUserInterfaceItem:iditem{if[item action]==@selectortoolbarButton1:{return YES;}return YES;}并且我还将-IBActiontoolbarButton1:idsender{…}连接到工具栏项。但仍然不起作用。AppDelegate中的相同方法也适用。