hi
ich hab da ein problem mit einem dynamischen menu...
das menu wird zur laufzeit mit menuitems erweitert die alle ihr "represented Objekt" gesetzt bekommen (das menu ist an verschiedenen Popupbuttons gehängt)
nun soll wenn der user den "titel" des represented objekt ändert sich ja auch der titel des NSmenu items ändern damit man das im Popup auch erkennen kann ...
nun hab ich folgenden code geschrieben:
das produziert folgenden lustigen output:
sprich indexOfItemWithRepresentedObject findet mein objekt nicht obwohl es sicher eine item mit diesem Objekt gibt ... hab mir auch mal die addressen ausgeben lassen ... die sind ebenfalls gleich ...
ich bin verwirrt und was nun sprach zeus?
jemand eine idee was ich falsch mache?
ich hab da ein problem mit einem dynamischen menu...
das menu wird zur laufzeit mit menuitems erweitert die alle ihr "represented Objekt" gesetzt bekommen (das menu ist an verschiedenen Popupbuttons gehängt)
nun soll wenn der user den "titel" des represented objekt ändert sich ja auch der titel des NSmenu items ändern damit man das im Popup auch erkennen kann ...
nun hab ich folgenden code geschrieben:
Quellcode
- int menuindex = [specAMenu indexOfItemWithRepresentedObject:[spectrenStore objectAtIndex:rowIndex]];
- NSLog(@"objekt at index %@",[spectrenStore objectAtIndex:rowIndex]);
- NSLog(@"represented objekt %@",[[specAMenu itemAtIndex:rowIndex+2] representedObject]);
- // die +2 im index ist für mein debugging ich "weiß" das dort mein menuobjekt steckt
- [[specAMenu itemAtIndex:menuindex] setTitle:anObject];
das produziert folgenden lustigen output:
Quellcode
- 2006-04-26 12:12:38.419 techedit[4541] objekt at index New Spectrum 2
- 2006-04-26 12:12:38.419 techedit[4541] represented objekt New Spectrum 2
- 2006-04-26 12:12:38.419 techedit[4541] *** Assertion failure in -[NSMenu itemAtIndex:], Menus.subproj/NSMenu.m:713
- 2006-04-26 12:12:38.419 techedit[4541] Exception raised during posting of notification. Ignored. exception: Invalid parameter not satisfying: (index >= 0) && (index < (_itemArray ? CFArrayGetCount((CFArrayRef)_itemArray) : 0))
sprich indexOfItemWithRepresentedObject findet mein objekt nicht obwohl es sicher eine item mit diesem Objekt gibt ... hab mir auch mal die addressen ausgeben lassen ... die sind ebenfalls gleich ...
ich bin verwirrt und was nun sprach zeus?
jemand eine idee was ich falsch mache?
snafu
:() { :|: &};:
sometimes i dream in hex
Obey gravity! Because its a law!
:() { :|: &};:
sometimes i dream in hex
Obey gravity! Because its a law!