Jag har behov av en NSTokenField med en NSTokenFieldCell, enligt bifogd bild:
Bilden är hämtad från Mail.app, och där finns alltså möjligheten att koppla ihop en NSTokenFieldCell med en meny, vilket är precis det jag behöver göra.
I Interface Builder så högerklickar jag på min NSTokenFieldCell, och gör en connection till min meny. Det finns redan en outlet som heter just meny, som jag trodde skulle vara för detta ändamål, men tydligen inte. Det framgår inte heller tydligt av dokumentationen för klasserna NSTokenField och NSTokenFieldCell vad denna outlet avser.
Då testade jag att göra en subklass till NSTokenFieldCell, och lägga till en egen outlet i den, för min meny. Jag kopplade ihop igen med menyn mha av min nya outlet, men jag får fortfarande inte upp någon meny.
I båda klasserna NSTokenField och NSTokenFieldCell finns det ett par delegates, som jag implementerat på följande vis:
- (BOOL)tokenFieldCell:(NSTokenFieldCell *)tokenFieldCell hasMenuForRepresentedObject:(id)representedObject
{
return YES; //return YES to indicate that this token has an associated menu
}
- (NSMenu *)tokenFieldCell:(NSTokenFieldCell *)tokenFieldCell menuForRepresentedObject:(id)representedObject
{
return [tokenFieldCell nameMenu]; //nameMenu is an instance variable in my subclass to NSTokenFieldCell
}
Jag gjorde en subclass till NSWindowController för att hantera mitt fönster, och det är också den som jag gjorde till delegate för min NSTokenFieldCell. Dock får jag inga anrop till mina delegates, och inte heller fungerar det med de connections jag gjort i IB.
Koden ovan är något förenklad, då jag har plockat bort retain, autorelease och lite annat, men ni förstås säkert principen för koden.
Jag kör Leopard med XCode 3.x.
Tacksam för all hjälp!