NSView将数据拖放到控制器

时间:2011-07-03 16:59:31

标签: objective-c xcode4

我正在构建一个应用程序,我有一个NSView的子类,我想成为一个拖放区域。然后,我想将该操作中的数据传递给视图控制器,以处理信息并执行其他任务。我发现我无法从控制器实现拖放方法;我不得不从视野中做到这一点。这意味着我必须找到一种将信息从视图传递回控制器的好方法。

我的第一个想法是尝试为视图创建委托函数,然后尝试从控制器实现拖放。这仍然是最好的方式,但我似乎无法使其工作或找到其他人这样做的教程。由于我正在尝试传回数据,因此我认为通知无效。

我没有包含任何代码,因为我仍然处于如何执行此操作的概念阶段。我已成功从视图中的拖放信息中获取信息 - 问题是从那里开始。如果我只想在视图中显示有关拖放的信息,或者对视图执行其他操作,那么我应该设置。我的问题存在,因为我想进一步处理这些信息。

所以,我的问题是,将拖放的数据传递给控制器​​的最佳方法是什么。我应该继续尝试委托拖放方法,以便我可以直接在控制器中获取数据吗?如果是这样,有没有人有这样做的例子?我知道这是一个新手问题,但任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

再次回答我自己的问题......但这是新手。

我使我的控制器头成为NSCollectionView的委托,因为那是我正在使用的视图类型。

@interface MainViewController : NSViewController <NSCollectionViewDelegate> 

在我的控制器从NIB唤醒时,我将视图委托设置为我的控制器...

- (void) awakeFromNib{
    [collectionView setDelegate: self];
}

然后在控制器中实现了拖放功能,允许我接受数据,然后根据需要对视图和业务逻辑进行更改。