【问题标题】:NSCollectionView: Go to the next view on selection with Selected ItemNSCollectionView:使用 Selected Item 转到下一个选择视图
【发布时间】:2013-04-25 20:36:40
【问题描述】:

我是 OS X 的新手,已经开始处理 NSCollectionView。我想要做的是用 imageView 数组显示 NSCollectionView 和标签。在选择图像时,我想打开一个新的 viewController 类。我能够在集合视图中显示图像和标签数组,但我完全不知道如何使用 NSCollectionView 中的选择进入新视图以及如何将选择的图像显示到新的 viewController 类。

我有一个 NSTabView,并且我有一个 customView,我在其中显示 CollectionView。在 awakeFromNib 中,我这样做是为了填充我的 collectionView

  -(void)awakeFromNib
{
arrItems = [[NSMutableArray alloc]init];
 NSMutableArray *imageArray=[[NSMutableArray alloc]initWithObjects:@"Baby-Girl-Wallpaper-2012-7.jpg",@"Cute-Little-Baby-Girl.jpg",@"Joker_HD_Wallpaper_by_RiddleMeThisJoker.jpg",@"The-Dark-Angel-Wallpaper-HD.jpg",@"hd-wallpapers-1080p_hdwallpapersarena_dot_com.jpg",@"lion_hd_wallpaper.jpg",@"Ganesh_painting.jpg",@"krishna-wallpaper.jpg",@"LeoN_userpic_79630_fire_lion_by_alex_barrera.jpg",@"273483.png",@"japan_digital_nature-wide.jpg", nil];
NSMutableArray *imageName = [[NSMutableArray alloc]initWithObjects:@"Baby-Girl",@"Cute-Little",@"Joker",@"The-Dark",@"hd-wallpapers", @"lion", @"Ganesh", @"krishna", @"LeoN_userpic",@"273483.png",@"japan_digital", nil];

for(int i = 0; i<[imageArray count]; i++)
{
    STImageCollectionModal * img1 = [[STImageCollectionModal alloc] init];
    img1.image = [NSImage imageNamed:[imageArray objectAtIndex:i]];
    img1.imageName = [NSString stringWithFormat:@"%@",[imageName objectAtIndex:i]];
    [arrItems addObject:img1];
}
[collectionView setContent:arrItems];
}

后来我创建了一个名为“STCollectionView”的新类,NSCollectionView 的子类,并将collectionView 类分配给“STCollectionView”,并在 setSelectionIndexes 方法的帮助下尝试通过此方法获取所选项目的索引

  - (void)setSelectionIndexes:(NSIndexSet *)indexes
 NSLog(@"%ld",[indexes firstIndex]);

但是这个方法被调用了两次,每当我输入“super setSelectionIndexes”时,它都会给我垃圾值。 我正在搜索它,但找不到任何解决方案。请帮忙..

提前谢谢你。

【问题讨论】:

  • 你的collectionview被选中了吗?

标签: xcode macos nscollectionview


【解决方案1】:

你的问题让我很困惑。我在想你可以通过添加 UICollectionView 并在 UICollectionView 添加自定义 UICollectionViewCell 来完成这项任务。在自定义 UICollectionViewCell 添加 UIImageViewUILabel。 在方法中

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
static NSString *identifier = @"ReuseID";
    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];
    cell.imageView.image = [UIImage imagewithNmaed:@"your Image name"];
    cell.label.text = @"image Named";
return cell;
  }

并在storyBoard中按住CLT+拖动到你的UIViewController。在方法prepareForSgue方法中将数据传递给你的Next viewController。

【讨论】:

  • 我正在使用 OS X 而不是 IOS。我知道如何在 ios 中处理 UICollectionView,但在 OS X 中,即 Mac App 我不知道如何处理 NSCollectionView。
猜你喜欢
  • 2012-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多