Ich habe ein Controller-Objekt, das ein NSMenu besitzt und ist der Delegat dieses Menüs, im Interesse der faulen Bevölkerung.NSMenu Delegat nicht aufgerufen, um es zu bevölkern
Allerdings wird weder numberOfItemsInMenu:
noch menuNeedsUpdate:
jemals aufgerufen, und so bleibt das Menü leer.
Ich habe bestätigt, dass:
- Das Controller-Objekt freigegeben worden ist. (Der Controller besitzt wiederum das Menü.)
- Es hat ein Menü.
- Das Menü hat einen Delegaten, und das ist der Controller.
Wenn ich implementieren menuWillOpen:
, dass genannt wird, aber you're not supposed to populate the menu there.
Ich habe versucht, das Menü eine update
Nachricht zu senden, und das hatte keine Wirkung. Der Delegierte blieb nicht angerufen, und die Speisekarte blieb leer.
Falls relevant: Dieses Menü befindet sich nicht im Hauptmenü; es wird an anderer Stelle verwendet.
Warum fragt das Menü nicht nach dem Delegaten, um es zu füllen? Gibt es etwas, das ich vermisst habe, oder ist es einfach kaputt?
Können Sie Ihren Code hier einfügen. Damit wir es auch ausprobieren? –
@ HussainShabbir: Nein. Der Code gehört nicht mir; Ich arbeitete an einem Auftragsjob. (Abgesehen davon, ich habe es bereits geändert, um nicht auf die Methoden angewiesen zu sein, die vom System aufgerufen werden.) –
Ich habe jetzt genau dasselbe Problem, und Ihre Erwähnung über 'menuWillOpen:' hat mir viel Zeit gespart. Für den Datensatz macht 'menuDidClose:' auch dasselbe Problem, selbst wenn die Eigenschaft 'enabled' eines Menüelements gesetzt ist. Das einzige, was funktioniert, ist 'menuNeedsUpdate:'. – Eonil