У меня есть проект, который должен отключить/включить некоторые NSToolbarItem
, зависит от разных опций. Я проверил и не нашел параметров для этого.
Есть ли способ включить/отключить данный NSToolbarItem
?
У меня есть проект, который должен отключить/включить некоторые NSToolbarItem
, зависит от разных опций. Я проверил и не нашел параметров для этого.
Есть ли способ включить/отключить данный NSToolbarItem
?
Внедрите протокол 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
, чтобы определить, какой элемент панели инструментов проверяется. Элементы проверяются часто, всякий раз, когда ваше приложение активируется или отправляются события, поэтому они всегда будут в правильном состоянии.
Существует более простое решение:
-(BOOL)validateToolbarItem:(NSToolbarItem *)toolbarItem
{
return [toolbarItem isEnabled] ;
}
таким образом вы можете использовать [yourToolBarItem setEnabled: YES/NO]; в вашем коде.
простой способ сделать это быстро, или вы можете перенести это на цель c, чтобы просто установить действия
Это отключает элемент
Mytoolbar.action = nil
Это повторно активирует его
Mytoolbar.action = "Name of a function"
При этом вы захотите заменить свою IBAction функцией, чтобы
@IBAction func blehbleh(sender: AnyObject){ Stuff }
будет изменено на
func blehbleh(){ Stuff }
Как сказал nsij22, вам нужно установить действие.
В Storyboard просто ctrl + перетащите элемент панели инструментов в действие вашего кода.