我有一個NSView的嵌套NSView的,如果我不拖動鼠標事件觸發所有子視圖使用NSTracking區域...罰款。NSView mouseEntered在拖拽時未在嵌套視圖上調用 - 黑客是唯一的選擇嗎?
但是,當我從父級NSView拖到子級NSView上時,鼠標事件沒有被觸發,然後我只能讓它們響應事件,這是通過黑客攻擊並感覺很髒。
NSView *hit = [self findViewUnderPoint:loc];
if (hit != nil)
{
if (hit != last)
{
[last mouseExited:event]; // This looks terrible to me
} else {
[hit mouseEntered:event]; // This looks terrible to me
}
last = hit;
}
如果您註釋掉上面的代碼,不會被觸發子視圖的事件,如果你把它留在他們...但我直接打電話給他們。
我已經上傳了一個視頻,告訴你它是如何工作的,然後拖動(用我的黑客) - 我還包括我的源代碼。
我「正道」後很理想的這樣
https://www.dropbox.com/s/b6ps8tz0jvg2gwy/Designable.zip?dl=0
您是否在使用NSTrackingEnabledDuringMouseDrag? – Ssswift
順便說一下,你的dropbox.com鏈接不適合我。 – Ssswift
@Ssswift - 是NSTrackingEnabledDuringMouseDrag已啓用。 – Chris