我在 Mac OS X 应用程序中要求用户能够在单个窗口中的后续项目之间切换,
- 工具栏中的 NSSearchField
- NS浏览器
- NSCollectionView
- NSCollectionView(第二个)
- NSC组合框
当用户仅在文本框和列表之间进行制表符时。由于某种原因,NSBrowser 似乎不算作列表,工具栏中的 NSSerachField 似乎不算作文本框。但是,如果我移动选项卡,我可以在 NSSerachField 中向后移动选项卡
如果我将控件设置之间的选项卡更改为所有控件之间的选项卡,则 NSBrowser 和 NSSearchField 都是选项卡,但是我有一个单独的问题,您无法从 NSSearchField 中跳出。我假设这意味着我的 nextKeyView 链是好的,或者当启用所有控件之间的选项卡时,nextKeyView 值完全被忽略。
我在界面生成器中设置了 nextKeyViews。
有什么方法可以让 Mac OS 将 NSBrowser 视为一个列表,我已经在继承 NSBrowser。如果它在工具栏中,是否有一个文本框不能被选项卡进入的原因。
另一个问题是 NSBrowser 和第一个 NSCollectionView 在 NSTabView 中,第二个 NSCollectionView 也在 NSTabView 中,NSTabViews 动态添加和删除了 NSTabViewItems,所以内容有点像文档。我将 NSTabViews 设置为 nextKeyView,然后在将 NSTabViewItems 添加到 NSTabView 后立即为其设置 initialFirstResponder。我还为 NSBrowser 设置了 nextKeyView 选项卡到 NSCollectionView。并且windows的initialFirstResponder设置为第一个NSTabView。
附加信息我已自动重新计算 KeyViewLoop 为否。通过在代码中设置下一个响应者,我已经设法让它暂时工作,但随后似乎发生了一些事情,Cocoa 去改变了这一切。