2012-03-20 81 views
0

我有一個半透明的NSView子類,它充當了一種工具提示。當在屏幕上繪製工具提示時,它將繪製在表單的頂部,因此它涵蓋了NSTextField的幾個。NSView上的光標放置在NSTextField上

當我將鼠標懸停在NSTextField所在位置的工具提示上時,光標變爲輸入樣式光標。

如何防止光標發生變化?

回答

1

Cocoa中並沒有真正支持重疊視圖,並且行爲未定義。

相反,您的工具提示視圖應該位於其自己的無邊框窗口中,足以容納您的視圖。工具提示窗口應該是它所連接的主窗口的子窗口。要使窗口成爲另一個窗口的子窗口,請使用NSWindowaddChildWindow:ordered:方法。

子窗口附加到父窗口,並在父窗口移動時隨其父窗口移動。如果您只是打開一個新窗口而不使其成爲一個子窗口,那麼如果其他窗口被移動,它將被「留下」。

要製作無邊界窗口,請將NSBorderlessWindowMask作爲styleMask轉換爲NSWindowinitWithContentRect:styleMask:backing:defer:方法。

+0

即使工具提示附加到NSScrollView中的元素,它也能工作嗎? – Christoffer 2012-03-21 06:51:38

+1

這是你的責任來管理窗口。您需要聽取各種調整大小/滾動通知並相應地更新窗口。 – 2012-03-21 08:02:04