2017-02-05 11 views
0

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

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

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

Любые предложения?

ответ

1

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

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

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

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

+0

Привет, Кен, Спасибо, что ответили. Нет, строки определенного типа всегда будут группой, но меня интересует, когда строка группы становится плавающей строкой, которая находится в верхней части таблицы. Я рассмотрю, что вы предлагаете. Кажется, это хорошее место для начала. Спасибо. –

0

Предложение Кена Томаса было всего лишь предложением, в котором я нуждался. Я хочу напрямую изменить 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") 
    } 
} 

позволяет мне изменить вид по желанию. Thankyou Ken