NSPopUpButton в области TrackingArea -> мышь при выборе элемента из меню - PullRequest
1 голос
/ 05 января 2010

У меня есть NSPopUpButton внутри области отслеживания. Теперь, когда я открываю всплывающее окно и выбираю элемент, вызывается метод mouseExited:. Даже если моя мышь все еще находится внутри области отслеживания. Я предполагаю, что это потому, что NSMenu - это само представление, и когда я щелкаю мышью, оно больше не отображается в виде с прямоугольником отслеживания.

Как я могу обойти эту проблему? Есть ли способ установить область отслеживания поверх всех видов?

Используемая область отслеживания:

NSUInteger options = NSTrackingMouseEnteredAndExited | NSTrackingActiveInKeyWindow;
NSTrackingArea* trackingArea = [[NSTrackingArea alloc] initWithRect:rect options:options owner:self userInfo:nil];

1 Ответ

0 голосов
/ 05 января 2010

Попробуйте NSTrackingActiveInActiveApp вместо NSTrackingActiveInKeyWindow. Я не уверен в этом, но возможно, что окно изменяет статус ключа (но не основного, поэтому его внешний вид не меняется), когда меню начинает отслеживать, так что пользователь может перемещаться по меню с помощью клавиатура. (Вы можете проверить это, будучи делегатом окна и ответив на пару сообщений делегата.)

Конечно, это означает, что вам нужно проверить, является ли окно основным, прежде чем обрабатывать движения мыши пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...