FocusTable在NSTableView中用于NSTextFieldCell的字段编辑器中

时间:2018-06-25 00:38:39

标签: nstableview nstextview nstextfieldcell

我有一个基于单元格的NSTableView,在特定列中有一个文本单元格。我想提供一个自定义字段编辑器,以便无需用户按F5就可以自动完成。

@implementation AutoCompleteFieldEditorTextView

-(id)init
{
    self = [super init];
    if (self)
    {
        self.focusRingType = NSFocusRingTypeDefault;
        self.fieldEditor = YES;
    }
    return self;
}

@end

除聚焦环不存在外,此方法工作正常。即使我添加:

-(void)drawFocusRingMask
{
    NSRectFill([self bounds]);
}

-(NSRect)focusRingMaskBounds
{
    return [self bounds];
}

它仍然不起作用。如何获得在默认NSTextView用作NSTableView中的字段编辑器时出现的确切的聚焦环?

1 个答案:

答案 0 :(得分:0)

有同样的问题,为了解决这个问题,我正在使用下一种方法。自定义NSTextFieldCell中重载了此方法,该方法创建并返回了自定义NSTextView:

- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
{
      [super drawInteriorWithFrame:cellFrame inView:controlView];

      if([controlView.window firstResponder] == self.maskTextField)
      {
         [super drawFocusRingMaskWithFrame:cellFrame
                                    inView:controlView];
      }
}

希望这对以后的人有所帮助。