Dokumentacja Apple mówi, że nadawca przekazany do działania NSMenuItem może zostać ustawiony na jakiś niestandardowy obiekt, ale nie mogę wymyślić, jak to zrobić. Czy istnieje metoda, której nie widzę w dokumentacji?Jak ustawić nadawcę w akcji NSMenuItem?
10
A
Odpowiedz
22
Nie jestem pewien, do jakiej części dokumentacji się odwołujesz (łącze pomogłoby).
Można zastosować metodę NSMenuItem
-setRepresentedObject:
skojarzyć dowolny obiekt z pozycji menu:
//assume "item" is an NSMenuItem object:
NSString* someObj = @"Some Arbitrary Object";
[item setRepresentedObject:someObj];
[item setAction:@selector(doSomething:)];
wtedy, gdy pozycja menu wysyła wiadomość działania można uzyskać obiektu:
- (IBAction)doSomething:(id)sender
{
NSLog(@"The menu item's object is %@",[sender representedObject]);
}
Nie pamiętam z góry, jaka to była dokumentacja, ale w końcu to wymyśliłem. –
Głupie pytanie: Dlaczego warto używać obiektu RepresentObject, gdy możemy po prostu użyć tytułu NSMenuItem? –
Nie powinieneś używać tytułów, ponieważ mogą one być zlokalizowane itp. O wiele lepiej jest użyć '-representedObject', ponieważ jest przeznaczony do przechowywania dowolnych danych. –