2013-05-16 1 views
1

enter image description hereСкрыть показать кнопку/скрыть в списке источников (вид на основе контурный вид)

как скрыть кнопку показать/скрыть (редактироваться развернуть здесь). даже я устанавливаю его как пустую строку, граница для ячейки данных уменьшается, как показано на изображении. ранее я использовал метод - (BOOL)outlineView:(NSOutlineView *)outlineView shouldShowOutlineCellForItem:(id)item, он скрывал строку show/hide и отлично работал. но проблема заключается в том, что outlineview позволяет только расширяться, не сворачиваясь. Я хочу развернуть только одного родителя за раз, щелкнув соответствующий родительский узел.

+0

исправлено: [этот код помог мне] (https://code.google.com/p/sequel-pro/source/browse/trunk/Source/SPFavoritesOutlineView.m?spec=svn4025&r=4025) – user23790

ответ

1

Наконец-то он решил, this code помог мне.

- (NSRect)frameOfOutlineCellAtRow:(NSInteger)rowIndex 
{ 
    NSRect superFrame = [super frameOfOutlineCellAtRow:rowIndex]; 

    // Return NSZeroRect if the row is a group row 
    if ([[self delegate] respondsToSelector:@selector(outlineView:isGroupItem:)]) { 
     if ([[self delegate] outlineView:self isGroupItem:[self itemAtRow:rowIndex]]) { 
      return NSZeroRect; 
     } 
    } 


    return superFrame; 
} 
+2

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

7

Используйте этот метод от метода NSOutlineViewDelegate:

  • (BOOL) outlineView: (NSOutlineView *) outlineView shouldShowOutlineCellForItem: (ID) элемент;