2011-02-03 89 views
2

我正在使用Interface Builder为Mac上的OpenGL Simulation开发接口。所有OpenGL的东西都是用C++写的(我很清楚)。不幸的是,我不知道Objective-C。将焦点从NSTextField更改为NSOpenGLView?

基本上,我有几个NSTextField显示屏幕上选定的对象的信息。使用这些文本区域的用户是能够操纵屏幕上的对象,然后有一个保存按钮和恢复按钮(它可以保存新值或恢复原来的值)

我有这一切工作。我的问题是,当我将数据输入到NSTextField时,窗口的“焦点”似乎仍然保留在NSTextField上(蓝色边框保留在它的周围)。

我使用键盘与NSOpenGLView中的项目进行交互,当我点击保存或恢复按钮时,我需要将焦点传递回NSOpenGLView。

很抱歉,如果这是一个很简单的问题

感谢

大卫

回答

3

您是否尝试过使用NSWindow makeFirstResponder方法,使您的NSOpenGLView第一响应者?

+0

感谢胡里奥,我一直在寻找在makeFirstResponer在过去的几个小时,但没有得到任何地方。然后在这里[链接](http://www.zerobyzero.ca/~ktatters/tutorials/tutorial0.html),我找到了从[NSApp keyWindow]调用make responder的参考,并且设法让它工作。只需添加'[[NSApp keyWindow] makeFirstResponder:MyOpenGLView];'在我的按钮调用函数结束时。谢谢。 – David 2011-02-03 02:01:18

2

只是设法让它工作。

我不得不添加的行:

[[NSApp表示keyWindow] makeFirstResponder:MyOpenGLView];

到当我点击我的任一按钮时被调用的函数的末尾。

(感谢胡指着我在正确的方向)