NSTableView и NSSearchField в NSView, который является выходом NSMenuItem, не работают - PullRequest
1 голос
/ 20 марта 2010

У меня есть NSView, который установлен как view: выход NSMenuItem. Представление содержит NSTableView (внутри NSScrollView) и NSSearchField. NSMenu отображается, когда пользователь щелкает конкретный NSStatusItem. Когда я запускаю приложение из Xcode (Build and Run), элементы управления работают хорошо, но всякий раз, когда я запускаю его из Finder (как это делают пользователи), они не работают и не фокусируются. Моя заявка LSUIElement. Может кто-нибудь мне помочь? Благодаря.

1 Ответ

3 голосов
/ 20 марта 2010

Поскольку ваше приложение - UIElement, оно NSMenu не будет фокусироваться. Вы должны установить NSTimer на 0,01 секунды, чтобы отобразить NSMenu, и вы должны сделать приложение активным:

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