objective-c – 禁用WebView的拖放,以支持其中一个超级视图

objective-c – 禁用WebView的拖放,以支持其中一个超级视图,第1张

概述我正在开发一个像Mac Mail这样的应用程序.我有一个WebView,允许用户编写新消息.我实现了拖放功能,以便用户可以通过这种方式向邮件添加附件. 为简单起见,我有一个包含WebView和其他视图的主视图.我在这个主视图上实现了拖放(使用draggingEntered:和performDragOperation:方法),它按预期工作. 问题是默认情况下,在WebView中拖动文件时,例如图像, 我正在开发一个像Mac Mail这样的应用程序.我有一个WebVIEw,允许用户编写新消息.我实现了拖放功能,以便用户可以通过这种方式向邮件添加附件.

为简单起见,我有一个包含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的拖放,以支持其中一个超级视图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1072189.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存