Frage

Ich muss ein Menü für eine ausgewählte Zeile einer Tabelle erstellen. Ich kann durch Überschreiben erstellen

-(NSMenu*)menuForEvent:(NSEvent*)evt 

Die Methode einer Tabelle hat dieses spezielle Menü zwei Untermenü. Ich kann das Untermenü herstellen, aber das folgende Problem konfrontiert

1-Um ein Untermenü in einem Menuitem hinzuzufügen, muss ich Sub-Menu von einer anderen Klasse/Schnittstelle bekommen. Ich rufe die folgende Methode auf

pSubMenu = [CommonUIUtil GetCommonUIMenu:pSubMenu                                         
                                          ActionId:self                                   
                     Selector:@selector(MyMenuAction)];

Wo der Prototyp dieser Funktion wie folgt ist

+(NSMenu *)GetCommonStatusMenu:(NSMenu *)pMenu ActionId:(NSObject*)aDelegate Selector:(SEL)selector

Implementierung wie unten,

// pStrArray is Array of String to have the Menu Title 
    for(int idx =0;idx<[pStrArray count];idx++)
    {
        pTempStr = [pStrArray objectAtIndex:idx];
        pImage = [CommUIController CommonGetImage:[CommonUIUtil GetImageByStatus:pTempStr]];
        [pImage setSize:NSMakeSize(20,20)];
        pMenuItem =[[NSMenuItem alloc]init];
        [pMenuItem setTitle:pTempStr];

                // this should set the selector 
        [pMenuItem setAction:selector];
                // Setting the target 
        [pMenuItem setTarget:aDelegate];

        [pMenuItem setImage:pImage];
        [pMenuItem setEnabled:YES];
        [pMenu addItem:pMenuItem];
        [pMenuItem release];

        }
    return pMenu;

Ich kann das Bild, Zeichenfolge in diesem Untermenü sehen, aber das Problem, mit dem ich ausgesetzt bin, ist, dass dieses Menü überhaupt nicht aktiviert ist. Kann mich jemand führen, wo ich den Fehler mache,

Diese Funktion gibt das Menü und das Menü zurück, das ich unten hinzufügen werde.

pMenuItem = [pCTTableMenu itemWithTitle:@"Status"];
    //status menu is the menu returned from the above function,  
[pMainMenu setSubmenu:pStatusMenu forItem:pMenuItem];

Vielen Dank im Voraus :)

War es hilfreich?

Lösung

Sieht so aus, dass ich die Selektormethode nicht richtig überschreite, in der Tat weiß ich nicht, wie man den Funktionszeiger in Kakao passt, wahrscheinlich mische ich Kakao/objektiv C und Normal C beides :), korrigiert, es in der Methode gerade Erstellen der Ansicht und in der Hauptklasse/Schnittstelle zuweisen Ziel und Aktion

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top