Уведомление о новой строке группы NSTableView

Я пытаюсь изменить внешний вид моего представления строки, когда оно становится строкой группы, или, возможно, более конкретно, когда оно становится строкой группы, которая застревает в верхней части NSTableview.

Я задавался вопросом, было ли уведомление или некоторая собственность, которая могла быть проверена. В идеале я хотел бы сделать какую-то анимацию, поскольку она попадает в зону действия вершины от одного вида к другому.

Я думаю о том, чтобы отслеживать координаты представлений строк по отношению к представлению клипа / представлению прокрутки... Это был бы подход, который вы бы выбрали?

Какие-либо предложения?

2 ответа

Решение

когда это становится групповой строкой

Ожидаете ли вы, что строка изменится, будет ли это строка группы с течением времени?

Я пытаюсь изменить внешний вид моего представления строки […], когда оно становится строкой группы, которая застревает в верхней части NSTableview.

Иметь вид строки -drawRect: метод проконсультироваться самостоятельно floating Свойство и рисуют по-разному в зависимости от его стоимости. Возможно, вам придется переопределить -setFloating: сеттер, чтобы пометить ваш вид строки как нуждающийся в отображении тоже.

Предложение Кена Томаса было именно тем предложением, которое мне было нужно. Я хочу напрямую изменить NSTableCellView, поэтому я вызвал следующий метод оттуда, но вы также можете вызвать его напрямую из пользовательского NSTableRowView.

Из пользовательского NSTableCellView:

override func draw(_ dirtyRect: NSRect) {
    super.draw(dirtyRect)
    if let rowView = self.superview as? NSTableRowView, rowView.isFloating == true {
        Swift.print("Row is Floating")
    }
}

Из пользовательского NSTableRowView:

override func draw(_ dirtyRect: NSRect) {
    super.draw(dirtyRect)
    if self.isFloating == true {
        Swift.print("Row is Floating")
    }
}

Позвольте мне изменить вид по желанию. Спасибо, Кен

Другие вопросы по тегам