Фокусное кольцо в полевом редакторе для NSTextFieldCell в NSTableView - PullRequest
0 голосов
/ 25 июня 2018

У меня есть 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 голосов
/ 12 декабря 2018

У меня та же проблема, и для ее решения я использую следующий подход.Этот метод перегружен в пользовательском 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];
      }
}

Надеюсь, что это поможет кому-то в будущем.

...