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
Q
NSTableView et NSSearchField dans un NSView, qui est la sortie d'un NSMenuItem, ne fonctionnent pas
1
A
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é! –
« ... 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. –