2009-06-27 42 views
0

我想在我正在開發的Cocoa編輯器中實現一些基本的選項卡。我正在使用NSSegmentedControl並將它作爲標籤添加到它。我使用一個自定義的NSSegmentedCell子類來爲選項卡在關閉選項卡的文本旁邊繪製一個「x」圖標,並且到目前爲止它已經非常流暢。NSSegmentedCell子類的鼠標事件?

但是,我無法弄清楚如何實際處理標籤的鼠標事件,以檢查是否有人對(x)圖標進行了挖掘(或點擊)。我嘗試在我的NSSegmentedControl子類中覆蓋「mouseMoved」,但出於某種奇怪的原因,當我向它添加一個新段時,它停止調用(我在awakeFromNib中將「setAcceptsMouseMovedEvents」設置爲yes,是否還必須將它設置在其他位置? )。作爲NSCell子類的NSSegmentedCells似乎沒有任何鼠標事件處理,除了鼠標跟蹤之外,只有在單擊控件時纔會觸發鼠標事件。

所以問題是,我將如何正確處理鼠標事件,無論是在NSSegmentedControl或NSSegmentedCell子類?

+0

我會對你用來繪製NSSegmentedCell的代碼感興趣。你介意分享嗎? – 2009-07-08 12:49:57

回答

2

看看NSTrackingArea。您可以將跟蹤區域添加到您的NSSegmentedControl並獲取鼠標輸入事件以突出顯示關閉按鈕。

至於獲得點擊事件,您可能最好使用關閉按鈕的單獨NSActionCell子類並在那裏進行一些命中測試。