2010-04-05 113 views
3

如何獲取工具欄中按鈕的屏幕位置?那是得到NSToolbarItem的矩形框?每當工具欄項目只是一個簡單的操作按鈕時,[NSToolbarItem view]方法似乎總是返回nil,因此我無法使用正常的NSView方法查明工具欄按鈕的屏幕位置。NSToolbarItem的屏幕位置

背景

我試圖用馬特Gemmell的MAAttachedWindow組件指向特定的工具欄按鈕。該組件需要一個NSPoint對象來將用戶「指向」屏幕上的某個位置。

在此先感謝。

回答

1

我碰巧遇到了同樣的問題。雖然我不會說我解決了它,但我發現了一種至少適用於我的場景的方法... 在我的ToolbarItem操作中,我獲取當前的鼠標位置 - 在這種情況下證明是足夠的。示例實現可能是這樣的:

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

嗨Tobidobi, 從外觀上來看你的解決方案適用於當用戶實際點擊該按鈕,是不是? 如果問題是放置「點擊此處」路標怎麼辦?這是用戶沒有點擊工具欄按鈕。 謝謝 – adib 2010-06-15 08:38:56

+0

如果用戶使用鍵盤快捷方式顯示彈出式窗口,那麼這將不起作用......在這種情況下,彈出窗口仍應指向工具欄項目。 – stevex 2012-08-28 14:47:41