【发布时间】:2010-06-05 15:29:00
【问题描述】:
我正在尝试让我的窗口的一部分对拖放做出反应。在这种情况下,将文件路径复制到被拖放到视图上的文件。我查看了一些文档,但我仍然有一些问题要确切地了解我应该在哪里实现我的拖放方法。
我看过一些示例,但几乎所有示例都假定我想在视图上放置图像。我对可可和 Xcode 还很陌生,所以在查看界面生成器和生成的代码之间的确切关系时遇到了一些问题。
我为 NSView 创建了一个子类,称为 drop zone,如下所示:
#import <Cocoa/Cocoa.h>
@interface dropZone : NSView {
}
@end
然后我使用 NSRect 将其涂成灰色,如下所示:
#import "dropZone.h"
@implementation dropZone
- (void)drawRect:(NSRect)rect
{
NSRect bounds = [self bounds];
[[NSColor grayColor] set];
[NSBezierPath fillRect:bounds];
}
@end
然后我将这个类拖到界面生成器中的窗口中。但是我需要实现registerForDraggingTypes 方法,但是在哪里呢?我还在 Apple 文档中看到了一种用于文件路径的便捷方法:dragFile:fromRect:slideBack:event:,这可能有效。
我应该使用第一响应者吗?一个 init 方法还是什么?
【问题讨论】:
标签: objective-c cocoa drag-and-drop