2013-10-01 18 views
5

Posso utilizzare l'attributo di tag dell'articolo per memorizzare una chiave/ID speciale o è destinato a qualcos'altro?Qual è lo scopo dell'attributo tag NSMenuItem?

Esempio di destinazione d'uso:

- (void)awakeFromNib { 

    [self.popup addItemWithTitle: [NSString stringWithFormat: @"dummy title" ]]; 
    [[self.popup lastItem] setTag: 1658 ]; 
    } 

    - (IBAction)popupAction: (id)sender { 

    [self someMethod: [sender selectedItem].tag]; 

    } 

risposta

4

sì la tag di tutti i controlli è gratuito per uso subdolo, è possibile utilizzare numeri differenti per gli articoli differenti, o per identificarli come una sorta di elemento, è sta a te.

+1

Semplicemente non utilizzare zero, se si desidera avere separatore nel menu. – iforce2d

+1

Il sito ufficiale di NSMenuItem doc ha par para molto utile che inizia come "il tag della voce di menu" e finisce il para. – thevikas

3

Come the documentation dice:

In genere assegnare tag alle voci di menu da Interface Builder, ma è anche possibile assegnare loro a livello di codice utilizzando il metodo di NSMenuItemsetTag:.

Per ulteriori dettagli, leggere le guide Application Menus and Pop-Up Lists e User Interface Validation. Ma l'idea di base è che a Cocoa non importa cosa ci metti.

Credo che lo scopo previsto sia quello di consentire l'accoppiamento di parti del codice in modo univoco: il codice che convalida le azioni dell'utente non deve sapere come è stata progettata l'interfaccia e l'interfaccia non deve sapere nulla il validatore; devono solo essere d'accordo su un numero. Tuttavia, nel moderno Cocoa, è altrettanto facile, e anche più libero, osservare l'azione, in modo che il tag venga liberato per tutto ciò che desideri.