【问题标题】:Simulate Tab and Shift-Tab with arrow keys in NSTableView在 NSTableView 中使用箭头键模拟 Tab 和 Shift-Tab
【发布时间】:2011-09-22 01:49:56
【问题描述】:

我想用右箭头和左箭头模拟选项卡和 shift-tab。我想我必须继承 NSTableview 并覆盖 keydown 代码,但我不知道如何告诉表格视图必须编辑列和行中的单元格。这就是我能走多远

-(void)keyDown:(NSEvent*)event{
    [super keyDown:event];
    NSLog(@"%hi", [event keyCode]);

        if ([event keyCode] == 48 && ([event modifierFlags] &
                                  NSShiftKeyMask)){
        [[self window] selectKeyViewPrecedingView:self];
    }

    if ([event keyCode] == 51){
        [[self window] selectKeyViewPrecedingView:self];

    }
    if ([event keyCode] == 124){
        if ([self selectedColumn] < [self numberOfColumns]-1) {

            [self performClickOnCellAtColumn:[self selectedColumn]+1 row:[self selectedRow]];
        }


    }
    if ([event keyCode] == 124){
        if ([self selectedColumn] > 0) {
            [self performClickOnCellAtColumn:[self selectedColumn]-1 row:[self selectedRow]];
        }


    }

}

【问题讨论】:

    标签: objective-c xcode cocoa nstableview nstableviewcell


    【解决方案1】:

    比 keydown 更好,你可以从 NSTableView 覆盖 NSControl 委托:

    - (BOOL)control:(NSControl *)control textView:(NSTextView *)textView doCommandBySelector:(SEL)command
    

    看看这篇文章的答案:Arrow keys with NSTableView

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 有了这个我编辑了字段,但我仍然无法移动到下一个或上一个单元格
      • 我不明白你在做什么。
      • 我想使用左右箭头键(如 tab 和 shift-tab)在单元格之间移动,所以当我按右时,我应该移动到下一个单元格并对其进行编辑
      • “在单元格之间移动”是什么意思?如果您使用此方法,它将选择并打开以编辑您指定的任何单元格。使用与选择下一行或下一列相同的逻辑。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-01
      • 2013-03-06
      • 1970-01-01
      • 2010-10-16
      • 1970-01-01
      • 2012-03-02
      相关资源
      最近更新 更多