Próbuję zrozumieć, jak trudno jest użyć NSPopUpButton. Jest to zdecydowanie najtrudniejszy element użytkownika do programowania w Cocoa (przynajmniej tak daleko, jak go znajduję).NSPopUpButton, Wiązania i skrócenie czasu życia
Sprawa użycie Mam na myśli to, co następuje:
- Mam klasy o nazwie Port, który reprezentuje port szeregowy.
- Wśród atrybutów jest pole nazwy.
- W polu NSPopUpButton chcę wyświetlić pole nazwy dla każdego portu.
- Gdy użytkownik wybierze określony port, zostanie on oznaczony w wyskakującym okienku za pomocą haczyka zgodnie z oczekiwaniami.
- Po naciśnięciu przez użytkownika przycisku łączenia mogę ustalić, który z portów został wybrany.
- Chciałbym osiągnąć to za pomocą wiązań, jak myślę, gdy już się nad tym rozprawię, będzie to bardziej eleganckie rozwiązanie.
Dlatego w moim AppController.h Oczekuję dwa atrybuty, które przypuszczalnie mogę tworzyć jako właściwości oraz synteza:
NSMutableArray *allPorts;
Port *currentlySelectedPort;
i jedna akcja w moim .m:
-(void)didSelectConnect:(id)sender{
NSLog(@"Selected port name is:%@",[currentlySelectedPort name]);
}
w Port.h Mam
NSString *name;
NSString *baudRate;
... etc ...
I ha ve stworzyłem prosty projekt, który zawiera tylko pop up (i etykietę) i po różnych artykułach, udało mi się wypełnić NSMutableArray elementami, które następnie wykorzystam ArrayController do wyświetlania wartości, a następnie przy wyborze ustaw wartość etykiety (za pomocą kontrolera obiektu). Jednak o ile jest to sprytnie, nie pasuje do przypadku użycia, który próbuję zaimplementować. Więc zwracam się tutaj o pomoc
M
Być może warto rozważyć rozpoczęcie bez używania powiązań. Napiszesz więcej kodu, ale musisz zrozumieć, że kod (i wszystkie podstawowe technologie kryjące się za powiązaniami, takie jak KVO), zanim naprawdę możesz sprawić, że wiązania będą działały dla ciebie w złożonych przykładach. –