2010-04-05 3 views
3

Как я могу получить экранное местоположение кнопки на панели инструментов? Получается прямоугольник прямоугольника NSToolbarItem? Метод [NSToolbarItem view] всегда возвращает nil всякий раз, когда элемент панели инструментов является простой кнопкой действий, и поэтому я не мог использовать обычные методы NSView, чтобы точно определить положение кнопки на панели инструментов.Расположение экрана NSToolbarItem

фон

Я пытаюсь использовать MAAttachedWindow компонент Matt Джеммелл, чтобы они указывали на конкретную кнопку панели инструментов. Компонент требует объект NSPoint, чтобы «указать» пользователя на местоположение на экране.

Заранее спасибо.

ответ

1

У меня случилась такая же проблема. Хотя я бы не сказал, что решил это, я нашел способ, который, по крайней мере, работает для моего сценария ... В моем действии ToolbarItem я извлекаю текущее местоположение мыши - в этом случае этого оказалось достаточно. Пример реализации может выглядеть следующим образом:

- (IBAction)showOverlay:(id)sender { 
    NSPoint clickedPoint = [self.window mouseLocationOutsideOfEventStream]; 
    self.overlayController = [[MyOverlayController alloc] initAtPoint:clickedPoint]; 
} 
+0

Hi Tobidobi, От взглядов этого ваше решение применимо, когда пользователь фактически нажимает на кнопку, не так ли? Что делать, если проблема заключается в том, чтобы установить указатель «нажмите здесь»? То есть пользователь не нажал кнопку на панели инструментов. Спасибо – adib

+0

Это не сработает, если пользователь использует комбинацию клавиш для отображения всплывающего окна ... в этом случае всплывающее окно все равно должно указывать на элемент панели инструментов. – stevex

Смежные вопросы