【发布时间】:2012-07-06 11:38:33
【问题描述】:
我有一个自定义的 NSTextField,我在其中实现了一些圆角。
按“TAB”键不会转到窗口中的下一个 NSTextField(或可选控件)。奇怪的。为什么会这样做?按下“TAB”时,我需要添加什么特别的东西以使应用程序能够通过其他控件吗?
【问题讨论】:
-
你会做任何形式的动态窗口或视图替换吗?
-
@trojanfoe,我确实重写了 drawRect: 方法并在其中插入了我自己的代码,该代码绘制在 nstextfield 中的任何 UI 之上。这就是您所说的窗口/视图替换吗?
-
不,我的意思是你替换窗口中的视图;问题是如果你这样做了,你需要告诉窗口重新计算密钥循环。我认为这可能是stackoverflow.com/questions/2217905/… 的重复
-
我不相信我正在替换窗口中的视图(没有代码建议这样做),但情况似乎与该 SO 链接中描述的情况相似:我按 TAB,光标变得不可见,再次按 TAB 将选择同一 nstextfield 中的整个文本。我尝试在 drawRect: 中添加 recalculateKeyViewLoop,但没有任何变化。
-
您可以尝试使用 IB 设置
next item(即显式设置密钥循环而不是依赖于计算它)。同时删除对recalculateKeyViewLoop的调用。
标签: objective-c macos nstextfield nscontrol