首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何启用/禁用NSToolbarItem

如何启用/禁用NSToolbarItem
EN

Stack Overflow用户
提问于 2011-11-05 10:48:19
回答 4查看 5.7K关注 0票数 11

我有一个项目,需要禁用/启用一些NSToolbarItem取决于不同的选项。我检查了一下,没有找到这个的参数。

有没有办法启用/禁用给定的NSToolbarItem

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-05 11:49:19

在您的窗口、视图或文档控制器中实现NSToolbarItemValidation协议。文档提供了以下示例代码:

代码语言:javascript
复制
-(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;
}

您还可以使用actiontag来确定正在验证的工具栏项。每当您的应用程序被激活或事件被调度时,项都会频繁地进行验证,因此它们始终处于有效状态。

票数 10
EN

Stack Overflow用户

发布于 2013-11-22 22:17:39

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

代码语言:javascript
复制
-(BOOL)validateToolbarItem:(NSToolbarItem *)toolbarItem
{

    return [toolbarItem isEnabled] ;
}

这样,您就可以在代码中使用yourToolBarItem setEnabled:YES/NO;。

票数 8
EN

Stack Overflow用户

发布于 2014-12-06 18:10:51

在swift中实现这一点的一种简单方法,或者您可以将其移植到目标c中,就是设置操作。

这将禁用该项目

代码语言:javascript
复制
Mytoolbar.action = nil

This reEnables it

代码语言:javascript
复制
Mytoolbar.action = "Name of a function"

在执行此操作时,您可能希望使用以下函数替换您的IBAction

代码语言:javascript
复制
@IBAction func blehbleh(sender: AnyObject){ Stuff }

将更改为

代码语言:javascript
复制
func blehbleh(){ Stuff }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8017822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档