diff --git a/DemoToday/TodayViewController.m b/DemoToday/TodayViewController.m index f1198dc..1a0bba6 100644 --- a/DemoToday/TodayViewController.m +++ b/DemoToday/TodayViewController.m @@ -32,7 +32,8 @@ - (void)viewDidLoad { NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:&fetchError]; self.objects = fetchedObjects; - self.preferredContentSize = CGSizeMake(self.preferredContentSize.width, self.objects.count * 44.0 /* self.tableView.rowHeight*/); + [self setPreferredContentSizeToTableView]; + [self.extensionContext setWidgetLargestAvailableDisplayMode:NCWidgetDisplayModeExpanded]; } - (void)didReceiveMemoryWarning { @@ -75,4 +76,19 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath [self.extensionContext openURL:url completionHandler:nil]; } +- (void)setPreferredContentSizeToTableView { + CGFloat tableViewRowHeight = 44; + self.preferredContentSize = CGSizeMake(self.preferredContentSize.width, self.objects.count * tableViewRowHeight ); +} + +- (void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode withMaximumSize:(CGSize)maxSize { + + if (activeDisplayMode == NCWidgetDisplayModeCompact) { + self.preferredContentSize = maxSize; + } + else { // NCWidgetDisplayModeExpanded, try to resize to the largest + [self setPreferredContentSizeToTableView]; + } +} + @end