2013-05-06 4 views
0

Я некоторое время боролся с этим и надеялся, что кто-нибудь сможет пролить свет на то, почему это не работает.Добавление Popover в TableViewCell

Я просто пытаюсь реализовать Popover на TableViewCell. Вот код ..

TodoView.m

- (void)tableView:(TUITableView *)tableView didClickRowAtIndexPath:(TUIFastIndexPath *)indexPath withEvent:(NSEvent *)event { 

    // MyViewController is a TUIViewController with a nib called MyView with just a button in it 
    MyViewController *t = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil]; 
    TUIView *theView = [[TUIView alloc] initWithFrame:NSMakeRect(0, 0, 300, 300)]; 

    TUIPopover *myPopover = [[TUIPopover alloc] initWithContentViewController:t]; 
    [myPopover showRelativeToRect:NSMakeRect(0, 0, 300, 300) ofView:theView preferredEdge:NSMaxYEdge]; 
} 

Некоторое время ничего не будет отображаться. Я мог сказать, что что-то случалось, потому что само окно потеряло бы фокус, как если бы Popover был.

Иногда я вижу очень маленький блик, как маленький прямоугольник 2px на 2px. Трудно это увидеть, он выглядит как мертвый пиксель на экране, но иногда появляется, когда я запускаю этот код.

TUIPopover от Twitter UIKit Framework.

Некоторые возможности ...

1) поповер не видно над CGFillRect?

TodoTableViewCell.m

- (void)drawRect:(CGRect)rect 
{ 
    CGRect b = self.bounds; 
    CGContextRef ctx = TUIGraphicsGetCurrentContext(); 

    CGContextSetRGBFillColor(ctx, 247.0/255, 247.0/255, 247.0/255, 1); 
    CGContextFillRect(ctx, b); 
} 

2) поповер не помещается внутри TableViewCell и не может рассматриваться

Кто-нибудь есть какие-нибудь мысли?

ответ

1

Действительно простой ответ:

Я забыл установить размер содержания пирог!

Итак, для тех, кто задается вопросом, почему их всплывающее окно не работает, убедитесь, что вы установили размер контента!

TUIPopover *p = [[TUIPopover alloc] initWithContentViewController:commentsViewController]; 
[p setAnimates:TRUE]; 
[p setContentSize:CGSizeMake(300, 350)]; 
[p setBehaviour:TUIPopoverViewControllerBehaviourTransient]; 
[p showRelativeToRect:b.bounds ofView:b preferredEdge:CGRectMinYEdge];