Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 如何控制模式对话框的选项卡顺序(键视图循环)?runModalForWindow:忽略nextKeyView_Cocoa_Tabs_Modal Dialog - Fatal编程技术网

Cocoa 如何控制模式对话框的选项卡顺序(键视图循环)?runModalForWindow:忽略nextKeyView

Cocoa 如何控制模式对话框的选项卡顺序(键视图循环)?runModalForWindow:忽略nextKeyView,cocoa,tabs,modal-dialog,Cocoa,Tabs,Modal Dialog,除非我完全困惑,否则runModalForWindow:似乎会忽略NSPanel中字段的nextKeyView属性 #define RUN_MODAL 1 #if RUN_MODAL [ NSApp runModalForWindow: self.view.window ] ; #else [ self.view.window makeKeyAndOrderFront: nil ] ; #endif 我已经尝试了两种方法,当使用正常的MakeKeyandDerfront:时,我

除非我完全困惑,否则
runModalForWindow:
似乎会忽略NSPanel中字段的
nextKeyView
属性

#define RUN_MODAL 1
#if RUN_MODAL
    [ NSApp runModalForWindow: self.view.window ] ;
#else
    [ self.view.window makeKeyAndOrderFront: nil ] ;
#endif
我已经尝试了两种方法,当使用正常的
MakeKeyandDerfront:
时,我肯定得到了正确的选项卡顺序,而当使用
runModalForWindow:
时,我没有得到正确的选项卡顺序 我错过什么了吗?或者有人知道如何在运行modal时使其工作吗

根据建议,我尝试了以下方法,得到了相同的结果:

#define RUN_MODAL 1
#if RUN_MODAL
#define USE_BEGINSHEET 1
#if USE_BEGINSHEET
    [ NSApp beginSheet: self.view.window
        modalForWindow: nil
         modalDelegate: nil
        didEndSelector: NULL
           contextInfo: NULL ];
#else
    [ NSApp runModalForWindow: self.view.window ] ;
#endif
#else
    [ self.view.window makeKeyAndOrderFront: nil ] ;
#endif

请注意,“文档窗口”是
nil
,因为这是一个几乎没有后台的UI应用程序,有时会弹出一个登录对话框。

原来是界面生成器中属性检查器窗口部分的“自动重新计算视图循环”复选框。它默认为选中,但在模式对话框中,如果任何字段被动态启用/禁用(比如绑定),则重新计算将按“几何”(从左到右,从上到下)顺序进行。
我相信,在编程上,这与NSWindow(在我的例子中是NSPanel)的
autorecalculatesKeyViewLoop
属性相对应。

如果使用-beginSheet:modalForWindow:modalDelegate:DiEndSelector:contextInfo:,那么问题是否仍然存在?我可以想象,在每种情况下,第一个响应者可能不同获取用nextTabView指定选项卡顺序对话框中的每个交互项都有nextTabView链接。在模式和非模式下运行的同一项目恰好是第一个响应者。但是模态版本中的tabling忽略了nextTabView链接,只是在从上到下的范围内从左到右,这就是我认为苹果公司所谓的“几何”顺序。还有一个camelCase咕哝道:“autorecalculates”在什么世界里是一个词?在同一个世界里Keyviewloop是一个词,这就是为什么autorecalculatesKeyViewLoop是一个奇怪的混合体。