Как включить/отключить NSToolbarItem

У меня есть проект, который должен отключить/включить некоторые NSToolbarItem, зависит от разных опций. Я проверил и не нашел параметров для этого.

Есть ли способ включить/отключить данный NSToolbarItem?

Ответ 1

Внедрите протокол 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;
}

Вы также можете использовать action или tag, чтобы определить, какой элемент панели инструментов проверяется. Элементы проверяются часто, всякий раз, когда ваше приложение активируется или отправляются события, поэтому они всегда будут в правильном состоянии.

Ответ 2

Существует более простое решение:

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

    return [toolbarItem isEnabled] ;
}

таким образом вы можете использовать [yourToolBarItem setEnabled: YES/NO]; в вашем коде.

Ответ 3

простой способ сделать это быстро, или вы можете перенести это на цель c, чтобы просто установить действия

Это отключает элемент

Mytoolbar.action = nil

Это повторно активирует его

Mytoolbar.action = "Name of a function"

При этом вы захотите заменить свою IBAction функцией, чтобы

@IBAction func blehbleh(sender: AnyObject){ Stuff }

будет изменено на

func blehbleh(){ Stuff }

Ответ 4

Как сказал nsij22, вам нужно установить действие.

В Storyboard просто ctrl + перетащите элемент панели инструментов в действие вашего кода.