我正在嘗試獲取相對於nsview的鼠標位置。從自定義nsview中獲取鼠標位置
至少有兩種方法,我知道的:
NSPoint mousePosition = [self.window convertScreenToBase:[NSEvent mouseLocation]];
而且
NSPoint mousePosition = [self.window mouseLocationOutsideOfEventStream];
兩者的這些方法的問題是,self.view爲空。我從視圖控制器添加了此視圖,該視圖控制器本身是由另一個視圖控制器添加的。我想知道是否有可能從低於許多級別的nsview開始獲取頂級窗口。
編輯:當然,我可以使用:
NSWindow *window = [self valueForKeyPath:@"delegate.delegate.view.window"];
但是,必須有一個更好的辦法。
我不知道我明白你爲什麼說「self.view爲空」(一個不存在的觀點不能被添加到一個窗口),你這是什麼意思頂部級別窗口(一個視圖屬於一個窗口)。 – 2011-04-23 13:51:54