2013-10-01 9 views
5

Czy mogę użyć atrybutu elementu do zapisania specjalnego klucza/identyfikatora lub czy jest on przeznaczony do czegoś innego?Jaki jest cel atrybutu znacznika NSMenuItem?

Przykład przeznaczeniem:

- (void)awakeFromNib { 

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

    - (IBAction)popupAction: (id)sender { 

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

    } 

Odpowiedz

4

yeah tag wszystkich kontroli jest wolny dla przebiegły użytku, można użyć różnych numerów dla różnych przedmiotów, lub w celu identyfikacji ich jako swego rodzaju rzeczy, to jest zależy od Ciebie.

+1

Po prostu nie używaj zera, jeśli chcesz mieć również elementy separator w swoim menu. – iforce2d

+1

Oficjalna strona NSMenuItem docs ma bardzo pomocny akapit o tym, który zaczyna się jak "Tag pozycji menu" i kończy się para. – thevikas

3

the documentation Jak mówi:

Zazwyczaj przypisać tagi do elementów menu z interfejsu Builder, ale można także przypisać je programowo metodą NSMenuItemsetTag:.

Aby uzyskać więcej informacji, przeczytaj przewodniki Application Menus and Pop-Up Lists i User Interface Validation. Ale podstawową ideą jest to, że Cocoa nie dba o to, co tam umieścisz.

Uważam, że zamierzonym celem jest umożliwienie luźnego łączenia części kodu - kod, który sprawdza działania użytkownika, nie musi wiedzieć, jak interfejs jest zaprojektowany, a interfejs użytkownika nie musi nic wiedzieć. walidator; oni po prostu muszą zgodzić się na liczbę. Jednak we współczesnym kakao jest równie łatwe, a nawet bardziej luźne, aby po prostu spojrzeć na akcję, więc tag jest wolny od wszystkiego, co chcesz.