11

さまざまなオプションに応じて、いくつかの s を無効/有効にする必要があるプロジェクトがNSToolbarItemあります。確認したところ、このパラメータは見つかりませんでした。

特定のを有効/無効にする方法はありNSToolbarItemますか?

4

4 に答える 4

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;
}

または を使用して、どのツールバー項目が検証されているactionかを判別することもできます。tagアプリがアクティブ化されるか、イベントがディスパッチされるたびに、アイテムは頻繁に検証されるため、常に有効な状態になります。

于 2011-11-05T03:49:19.250 に答える
8

もっと簡単な解決策があります:

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

    return [toolbarItem isEnabled] ;
}

そうすれば、 [yourToolBarItem setEnabled:YES/NO] を使用できます。あなたのコードで。

于 2013-11-22T14:17:39.413 に答える
2

これを迅速に行う簡単な方法、またはこれを目的の c に移植することは、単にアクションを設定することです

これはアイテムを無効にします

Mytoolbar.action = nil

これにより、再度有効になります

Mytoolbar.action = "Name of a function"

これを行うには、IBAction を関数に置き換えてください。

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

に変更されます

func blehbleh(){ Stuff }
于 2014-12-06T10:10:50.957 に答える