Macos 禁用Swift中的工具栏按钮

Macos 禁用Swift中的工具栏按钮,macos,cocoa,Macos,Cocoa,我有一个简单的Swift cocoa应用程序。主窗口包含: 包含一些图像工具栏项的工具栏 NSViewController(名为ViewController) 在ViewController中,我实现了: func validateToolbarItem(_ item: NSToolbarItem) -> Bool 根据我的要求启用按钮 不幸的是,validateToolbarItem从未被调用 在另一个Objective-c应用程序中,我有完全相同的场景和功能: -(BOOL)va

我有一个简单的Swift cocoa应用程序。主窗口包含:

  • 包含一些图像工具栏项的工具栏
  • NSViewController(名为ViewController)
在ViewController中,我实现了:

func validateToolbarItem(_ item: NSToolbarItem) -> Bool
根据我的要求启用按钮

不幸的是,validateToolbarItem从未被调用

在另一个Objective-c应用程序中,我有完全相同的场景和功能:

-(BOOL)validateToolbarItem:(NSToolbarItem *)toolbarItem
这是正确的称呼

我如何解决这个问题?我在斯威夫特错过了什么


我最终解决了这个问题

ViewController必须实现NSToolbarItemValidation协议:

class ViewController: NSViewController, ..., NSToolbarItemValidation {

    ....

    func validateToolbarItem(_ item: NSToolbarItem) -> Bool {

        return true or false
    }
}
问题是,当我第一次测试它时,它不起作用。我必须重新启动Xcode以使其正常工作。

可能重复的