NSMenuItem event

Dieses Thema im Forum "Mac OS X Entwickler, Programmierer" wurde erstellt von Sojus, 24.10.2006.

  1. Sojus

    Sojus Thread Starter MacUser Mitglied

    Beiträge:
    143
    Zustimmungen:
    3
    MacUser seit:
    30.05.2006
    Hallo Macuser

    Ich bin gerade dabei Cocoa zu lernen. Ich möchte eigentlich ein Dynamisches menu erstellen (ohne IB), und die Events selber deklarieren.

    Also so siehts aus:

    Code:
    #import <Cocoa/Cocoa.h>
    
    @interface MyObject : NSObject
    {
        IBOutlet id menu;
    }
    -(void)awakeFromNib;
    -(void)test;
    @end
    
    
    #import "MyObject.h"
    
    @implementation MyObject
    -(void)awakeFromNib
    {
    	NSMenuItem *item = [menu addItemWithTitle:@"asd" action:@selector(test:) keyEquivalent:@""];
    	[item setTarget:self];
    }
    -(void)test
    {
    	NSLog(@"juhu");
    }
    @end
    
    Das ist meine Klasse, die ich im IB erstellt habe. Sie hat ein Outlet zu einem NSMenu Objekt. Was ich eigentlich versucht habe ist dem NSMenu ein NSMenuItem hinzu zu fügen und dann beim klick auf das Item eine methode aufzurufen. Habe dazu action und target definiert (so wie ich es verstanden habe). Das problm ist jedoch, dass es nicht funktioniert. Das MenuItem ist immer noch grau und ich kann es nicht auswählen.


    Habe ich das mit action und target völig falsch verstanden oder wo leigt der Fehler?

    mfg

    PS: Kann ich auch ein mouse over auf einem MenuItem oder Tastatureingabe abfangen?
     
  2. Sojus

    Sojus Thread Starter MacUser Mitglied

    Beiträge:
    143
    Zustimmungen:
    3
    MacUser seit:
    30.05.2006
    hat das noch nie jemand gemacht?
     
  3. Gremlin

    Gremlin MacUser Mitglied

    Beiträge:
    743
    Zustimmungen:
    3
    MacUser seit:
    11.01.2006
    Die Signatur von Test ist falsch. Es muss

    Code:
    -(void)test:(id)sender
    heissen, auch wenn dich der Sender nicht interessiert - er findet sonst die Methode nicht.

    Gremlin
     
  4. Sojus

    Sojus Thread Starter MacUser Mitglied

    Beiträge:
    143
    Zustimmungen:
    3
    MacUser seit:
    30.05.2006
    *ausprobier*

    es funktioniert

    danke für deine Hilfe :D
     
Die Seite wird geladen...