---------問題1 ---------- 也許我不明白框架對象完全(或者也許不正確,我環境中創建的),但我想實現鼠標事件我遇到了呼叫的情況:當使用initWithRect初始化時,NSTrackingArea會產生不同的結果:[self bounds]和[self frame]
trackingArea=[ [NSTrackingArea alloc] initWithRect:[self frame] options:(NSTrackingMouseEnteredAndExited | NSTrackingMouseMoved | NSTrackingActiveInKeyWindow) owner:self userInfo:nil ];
不正確的跟蹤區域產生(僅限頂級右上角工作) - 調查問題,我發現'框架'開始在右上角的某個地方。此調用是在重載的initWithFrame中進行定義的:
glView = [ [ Lesson17View alloc ] initWithFrame:[ glWindow frame ]
colorBits:16 depthBits:16 fullscreen:FALSE ];
其中glView是從NSOpenGLView中分類的。上面的調用是在awakeFromNib中完成的,glWindow被定義爲:
IBOutlet NSWindow * glWindow;
當我用框架替換界限時,我的應用程序工作 - 框架變量發生了什麼?
問題--------- ---------- 2
我的第二個問題涉及到如何處理鼠標事件,並正確地有我的OpenGL視圖,重繪 - 說我有:
- (void) mouseMoved:(NSEvent *)theEvent
{
NSPoint location=[self convertPoint:[theEvent locationInWindow] fromView:nil];
// send NSPoint to a printGL function I have that uses texture maps to display text?
}
我猜我不應該送這呈現在我的OpenGL視圖,東西(因爲這並不做任何事情-guessing因爲每當我使用的drawRect無論我在鼠標中畫了一個功能事件被清除)。目前我所有的繪圖都是在drawRect中完成的(包含一堆openGL調用) - 在這一點上,適當的調用是什麼?
或者我應該設置一個標誌(以及設置一個實例變量NSPoint)爲true,這將允許printGL只在mouseMoved事件上調用(我知道 - 我將使用mouseEntered/Exited函數,但現在我'米試圖得到這個處理)。
你應該把它分成兩個不同的問題。 – 2011-06-02 01:06:38