2011-07-17 23 views
6

我想創建一種桌面小部件,並希望通過HTML/CSS非常容易地進行樣式設置。我決定使用WebView來完成這項任務。從WebKit製作WebView可拖動鼠標在可可

我有一個無邊界NSWindowWebView裏面。我想使用鼠標拖動它(因爲任何普通窗口都可以使用它的標題進行拖動,但是通過點擊我的WebView中的任意位置)。試圖子類WebView和重寫mouseDownmouseDragged事件,但沒有奏效(出於顯而易見的原因)。

當然,我可以創建一個高於WebView的透明視圖來解決問題,但我真的很想找到更好的方法。有人知道如何做到這一點?

回答

4

問題解決了通過重寫父NSWindow子類中的方法- (void)sendEvent:,像這樣:

//Overriding mouse events 
- (void)sendEvent:(NSEvent *)theEvent 
{ 
    if ([theEvent type] == NSLeftMouseDown) 
    { 
     [self mouseDown:theEvent]; 
    } 
    else if ([theEvent type] == NSLeftMouseDragged) 
    { 
     [self mouseDragged:theEvent]; 
    } 
    else 
    { 
     [super sendEvent:theEvent]; 
    } 
} 

我想這是最好的解決方案。