2012-01-31 26 views
1

我有一個透明的網頁視圖,這是一個大矩形。它加載的網頁具有較小的矩形,不會填充整個Web視圖。所以在沒有被div佔用的空間裏,你可以通過web視圖看到任何窗口或應用程序在後面。儘管您可以看透,但無法點擊。 我需要能夠點擊沒有活動內容的部分網頁視圖。 任何想法?可可webview忽略沒有內容的區域中的鼠標事件

我的一個想法是在Web視圖頂部有一個透明的nsview,攔截鼠標下降,獲取座標,然後在Web視圖中引用該座標並查看是否存在活動內容,如果是,則傳遞將鼠標放下到web視圖的事件,但如果不是,則忽略它/將其傳遞到後面。這對我來說很有意義,但我不知道我會做到這一點...

回答

3

您需要繼承WebView和實施hitTest:方法。在您的方法中,您需要測試以查看鼠標是否位於Web視圖的「活動」區域之一中,如果不是,則返回視圖的下一個響應者作爲通過命中測試的視圖。

//assume activeRect is some rect in your view that you want to accept mouse clicks on 

- (NSView*)hitTest:(NSPoint)aPoint 
{ 
    if(NSPointInRect([self convertPoint:aPoint fromView:nil], activeRect)) 
    { 
     //if the mouse is in an active area then just perform the default operation 
     return [super hitTest:aPoint]; 
    } 
    //otherwise return the next responder 
    return (NSView*)[self nextResponder]; 
} 
+0

輝煌的搶劫。 現在我只需要找出如何使用JavaScript來查找是否有活動的內容... – fefwfefefwfwe 2012-01-31 04:39:38

+0

很好的答案... – Nookaraju 2014-04-17 09:55:41

相關問題