0

ビュー1にtxt1(NSTextFiled)、txt2(NSTextField)、tbl1(NSTableView)を配置し、カーソルが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
    . . .
}

pressTABビュー1にメソッドを実装し、コードの下に記述します

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

すべて問題なく、コードは正常に動作しますが、このコードを実行した後、Xcode は自動的にファーストレスポンダを txt2 に変更します。自動タブ変更を無効にして、コードからそれを行うにはどうすればよいですか?

4

1 に答える 1

0

nextKeyView プロパティを設定することにより、コードでこれを行うことができます (Xcode 4.2 を使用すると、IB でこれを行うことができないようです)。そう:

txt1.nextKeyView = tbl1;

于 2012-05-18T23:04:12.010 に答える