如何启用/禁用NSToolbarItem

mon*_*bre 10 cocoa objective-c nstoolbar nstoolbaritem

我有一个项目需要禁用/启用一些NSToolbarItems取决于不同的选项.我查了一下,发现没有参数.

有没有办法启用/禁用NSToolbarItem?

Fra*_*rew 10

在窗口,视图或文档控制器中实现NSToolbarItemValidation协议.该文档提供了以下示例代码:

-(BOOL)validateToolbarItem:(NSToolbarItem *)toolbarItem {

    BOOL enable = NO;
    if ([[toolbarItem itemIdentifier] isEqual:SaveDocToolbarItemIdentifier]) {

        // We will return YES (enable the save item)
        // only when the document is dirty and needs saving
        enable = [self isDocumentEdited];

    } else if ([[toolbarItem itemIdentifier] isEqual:NSToolbarPrintItemIdentifier]) {

        // always enable print for this window
        enable = YES;
    }
    return enable;
}
Run Code Online (Sandbox Code Playgroud)

您还可以使用actiontag确定要验证的工具栏项.每当您的应用程序被激活或调度事件时,项目都会经常验证,因此它们将始终处于有效状态.


小智 6

有一个更简单的解决方案:

-(BOOL)validateToolbarItem:(NSToolbarItem *)toolbarItem
{

    return [toolbarItem isEnabled] ;
}
Run Code Online (Sandbox Code Playgroud)

那样你就可以使用[yourToolBarItem setEnabled:YES/NO]; 在你的代码中.

  • 干净漂亮,在面料课上 (2认同)