2010-03-20 18 views
1

J'ai un NSView, qui est défini comme la sortie view: d'un NSMenuItem. La vue contient un NSTableView (à l'intérieur d'un NSScrollView) et un NSSearchField. Le NSMenu est affiché lorsque l'utilisateur clique sur un NSStatusItem spécifique. Lorsque je lance l'application à partir de Xcode (Build and Run), les contrôles se comportent bien, mais chaque fois que je le lance depuis le Finder (comme le feraient les utilisateurs), ils ne fonctionnent pas et ne prennent aucun accent. Mon application est un LSUIElement. Quelqu'un peut m'aider? Merci.NSTableView et NSSearchField dans un NSView, qui est la sortie d'un NSMenuItem, ne fonctionnent pas

+0

« ... la' vue: sortie '... » Vous voulez dire que 'view'. Les noms de variables et de propriétés ne peuvent pas contenir de deux-points, et le getter de la propriété (informelle) s'appelle 'view', sans deux-points, car il ne prend pas d'argument. –

Répondre

3

Depuis, votre application est un UIElement, c'est NSMenu ne prendra pas le focus. Vous devez définir une NSTimer à 0,01 secondes pour montrer l'NSMenu, et vous devriez faire l'application active:

- (void)statusItemClicked { 
    [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(showMenu) userInfo:nil repeats:NO]; 
    [NSApp activateIgnoringOtherApps:YES]; 
} 
- (void)showMenu { 
    [statusItem popUpStatusItemMenu:statusMenu]; 
} 
+0

Wow cool! Merci, moi-même! Ça a bien marché! –