我在Yosemita 10.10上編寫了Eclipse(而不是Xcode)... 我嘗試捕獲MouseMoved事件,但它沒有調用(mouseDown,mouseDragged - 工作正常)。所以我使用這個示例代碼從這裏 http://lists.apple.com/archives/mac-opengl/2003/Feb/msg00069.html 但compiller顯示錯誤
[app setDelegate:view]; ( - 無法使用類型'NSView *'的左值初始化'id'類型的參數)
如果我評論此行 - 它是工作,但mouseMoved不會調用。
請幫忙!我是新手在Objective-C可可NSOpenGLView - [win setDelegate:view]顯示錯誤。如何手動委派?
2
A
回答
0
OS X不會自動跟蹤您的鼠標移動事件,除非您請求它們。
爲了接收mouseMoved:
事件,您應該將NSTrackingArea
添加到您的子類NSOpenGLView
。例如:
- (void)awakeFromNib {
NSTrackingArea *trackingArea = [[NSTrackingArea alloc] initWithRect:self.frame options:NSTrackingActiveAlways|NSTrackingMouseMoved owner:self userInfo:nil];
[self addTrackingArea:trackingArea];
}
之後,您的mouseMoved:
方法將被調用。
- (void)mouseMoved:(NSEvent *)theEvent {
NSLog(@"moved");
}
您可以選擇實現updateTrackingAreas
如果您需要手動更新您的跟蹤區域時,視圖調整大小。詳情請參考Using Tracking-Area Objects。
相關問題
- 1. NSOpenGLView可可(再次)
- 2. NSInternalInconsistencyException錯誤使用委派
- 3. Haskell派生顯示錯誤
- 4. 錯誤創建NSOpenGLView
- 5. PHP - 委派任務,可執行
- 6. PasswordControl並手動顯示ValidationRule錯誤
- 7. ZF2如何顯示錯誤404爲不可伸縮動作
- 8. 在swift中委派錯誤2
- 9. 如何顯示在可可
- 10. jQuery的 - 如何委派撥動
- 11. 如何委派來自監聽器的可運行代碼?
- 12. 如何在angular2中手動拋出可觀察的錯誤?
- 13. 可可 - NSWindow動畫何時顯示?
- 14. 如何使用MKMapView完成加載委託,可能「完成顯示」委託?
- 15. Java中的自動委派
- 16. Android可繪製錯誤未顯示
- 17. ggplot2可視化地圖/顯示錯誤?
- 18. Xcode/iOS自動委託指派...一個錯誤?
- 19. Mootools:如何手動顯示提示
- 20. 如何使用SWIFT委託與可可
- 21. 我可以啓動Win 8後臺任務手冊
- 22. 如何顯示並退出不可恢復的錯誤
- 23. 如何解決Joomla錯誤「此顯示模板不可用。」
- 24. 如何顯示zf2錯誤?
- 25. 創建一個全屏幕彈出工具欄NSOpenGLView(OSX可可)
- 26. 當移動網絡不可用時如何顯示錯誤頁面
- 27. 如何手動顯示require popup?
- 28. eclipse可以更自動地顯示編譯錯誤文本嗎?
- 29. 可以只顯示一個動作的錯誤
- 30. 是否可以爲Python實現自動錯誤突出顯示?
非常感謝!awakeFromNib並沒有給我打電話,但是我把這段代碼放到了viewDidMoveToWindow中,它現在工作的很好!
但keyDown事件仍然不起作用。
我加了:
[win setInitialFirstResponder:view];
\t \t [win setNextResponder:view];
\t \t [win makeFirstResponder:view]; (BOOL)acceptedFirstResponder { return YES; // never called }
並且沒有任何作用...也許我必須創建NSController對象的子類?(在哪種情況下,我該如何將這個子類連接到我的NSView對象? ) – user3226859
當您按下鍵盤鍵時,'keyDown:'在第一個響應者上被調用。所以確保你的'keyDown:'方法在正確的位置實現。通常你也不需要操縱第一響應者,因爲系統會根據用戶交互自動設置它。 –
這是我的代碼:http://stackoverflow.com/questions/30398605/cocoa-keydown-event-doesnt-call也許這是行不通的,因爲視圖沒有委託與勝利? – user3226859