Ответы пользователя по тегу macOS
  • Как добавить кнопку NSButton в NSTokenField?

    absterno
    @absterno Автор вопроса
    Спасибо Petrushka за подсказку.
    Код решения был найден на другом форуме.

    Нужно унаследоваться от NSTokenFieldCell и переопределить функцию drawingRectForBounds:

    #import <Cocoa/Cocoa.h>
    @interface ExtCell : NSTokenFieldCell
    @end
    
    @implementation ExtCell
    
    - (NSRect) drawingRectForBounds:(NSRect)rect {
        CGFloat vIndent = 2; //отступ сверху
        CGFloat hIndent = 2; // отступ сбоку
        CGFloat tfWidth = 185; //ширина поля ввода (ширина TokenField за вычетом отступов, ширины кнопки и прочего по усмотрению)
        CGFloat tfHeight = 20; //высота поля ввода (высота TokenField за вычетом отступов и прочего по усмотрению)
        NSRect newRect = CGRectMake(hIndent, vIndent, tfWidth, tfHeight);
        return newRect;
    }
    
    @end

    9a85527ea00349d08be33c88b0924598.png

    Значения vIndent и другие поменяйте на нормальные для своего случая.

    Результат:
    0f1b8b61fe1a43fb98c8fae6d88a8c8e.png11773233bc9647338d05acbe7c9894de.png
    Ответ написан
    Комментировать