0

我把txt1(NSTextFiled),txt2(NSTextField),tbl1(NSTableView)放在view1上,当光标在txt1中时,我按下TAB键并且光标转到txt2。我想从我按下TAB时转到的代码中更改它tbl1(tbl1 成为第一响应者),然后我将 txt1 子类化为customtext并在其中实现以下代码

- (BOOL)control:(NSControl*)control textView:(NSTextView*)textView doCommandBySelector:(SEL)commandSelector
{
    BOOL result = NO;

    if (commandSelector == @selector(insertTab:))
    {
            [self.delegate performSelector:@selector(pressTAB) withObject:nil ];
    }//if
    . . .
}

我在 view1 中实现pressTAB方法并编写以下代码

-(void)pressTAB
{
    [[self.view window] makeFirstResponder:self.tbl1];
}

一切正常,代码正常运行,但在此代码运行后,Xcode 会自动将第一响应者更改为 txt2。我如何禁用自动 TAB 更改并仅从我的代码中执行?

4

1 回答 1

0

您可以通过设置 nextKeyView 属性在代码中执行此操作(使用 Xcode 4.2 在 IB 中执行此操作似乎不起作用)。所以:

txt1.nextKeyView = tbl1;

于 2012-05-18T23:04:12.010 回答