为简单起见,我有一个包含WebVIEw和其他视图的主视图.我在这个主视图上实现了拖放(使用draggingEntered:和performDragOperation:方法),它按预期工作.
问题是默认情况下,在WebVIEw中拖动文件时,例如图像,图像将显示在WebVIEw中.但我不希望这样,我希望它被添加为附件,这就是为什么我禁用了WebVIEw中的拖放:
def webVIEw(sender,dragDestinationActionMaskForDraggingInfo:draggingInfo) WebDragDestinationActionNone end
但是现在我的文件将作为附件添加,如果我将它拖动到主视图中的任何位置,除了在WebVIEw中(在这种情况下不会调用draggingEntered:和performDragOperation:方法).
我不知道我的问题是否足够明确以找到答案,我仍然是Cocoa开发的新手,所以如果您需要更多细节,请随时告诉我.另一件事,我正在使用Rubymotion,但如果你有一个Objective-C的解决方案,那也将是完美的!
感谢您的任何帮助或建议.
解
我将WebVIEw子类化并覆盖performDragOperation方法以使其工作:
def performDragOperation(sender) self.UIDelegate.mainVIEw.performDragOperation(sender)end解决方法 您可以检查目标窗口的发送方(实现NSDraggingInfo协议):
http://developer.apple.com/library/Mac/#documentation/Cocoa/Reference/ApplicationKit/Protocols/NSDraggingInfo_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/NSDraggingInfo/draggingDestinationWindow
def performDragOperation(sender) if sender.draggingDestinationWindow == @web_vIEw # Attach file else # Let it do the normal drag operation end trueend
这只是一个猜测,但你应该能够从这里找到解决方案.
总结以上是内存溢出为你收集整理的objective-c – 禁用WebView的拖放,以支持其中一个超级视图全部内容,希望文章能够帮你解决objective-c – 禁用WebView的拖放,以支持其中一个超级视图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)