2013-05-13 4 views
0

Я хочу удалить кнопку отображения/скрытия NSOutlineView. Так, я переопределяю NSOutlineView и получаю событие mouseDown. Следующее - это код.Прокрутка анимации NSOutlineView не работает

-(void)mouseDown:(NSEvent *)theEvent 
{ 
    NSLog(@"LeftFolderListOutlineView mouseDown"); 
    [super mouseDown:theEvent]; 

    NSPoint localPoint = [self convertPoint:theEvent.locationInWindow 
            fromView:nil]; 
    NSInteger row = [self rowAtPoint:localPoint]; 

    id clickedItem = [self itemAtRow:row]; 

    if (![clickedItem isKindOfClass:[NSDictionary class]]) { 
     return; 
    } 


    if ([self isItemExpanded:clickedItem]) { 

     [[self animator] collapseItem:clickedItem]; 

    }else{ 
     [[self animator] expandItem:clickedItem]; 
    } 

} 

Она должна быть прокрутки анимации, когда коллапс NSOutlineView или expand.But в данном случае это не working.Anyone сказать мне, почему и как я могу улучшить это?

ответ

0

Чтобы удалить 'show/hide button' (контур ячейки), вы можете реализовать метод - (NSRect)frameOfOutlineCellAtRow:(NSInteger)row в подклассе NSOutliveView и вернуть NSZeroRect.

NSOutlineView обрушение/развернуть анимацию не поддерживает анимацию через animator.

Только ОС 10.7 или выше обеспечивает сбой/расширение анимационных эффектов. Таким образом, вы планируете поддерживать более старые версии ОС, необходимые для обеспечения отдельной реализации.

Если вы хотите предоставить анимацию с разворотом/расширением на OS 10.6 или ниже, вам определенно необходимо переопределить 'drawRect' NSOutlineView.

- Обновление -

К сожалению, я думаю, что я забыл главное. 10.7 развернуть/свернуть анимацию автоматически запускается только тогда, когда пользователи щелкают по ячейке контура. Если мы хотим показать анимацию без ячеек схемы по умолчанию, нет другого способа, кроме как вручную реализовать эффекты анимации, я думаю.

Я сделал пример проекта, который реализует эффекты анимации расширения/сглаживания с помощью рисования изображений. Проверьте исходные коды здесь: https://github.com/roh0sun/ovanimation

+0

Но моя система os 10.7, я хочу знать, как разрешить работу анимации – gohamgx

+0

Я прочитал ваш код. Я думаю, что ваш проект может завершить анимацию рисования изображения. Но расширение/collapse пока не работает. – gohamgx

Смежные вопросы