@cvp
ok...we won
# coding: utf-8
from objc_util import *
import ui,time
def dropInteraction_canHandleSession_(_m,_c,interaction,session):
return True
def dropInteraction_sessionDidUpdate_(_m,_c,interaction,session):
return ObjCClass('UIDropProposal').alloc().initWithDropOperation(2).ptr
def dropInteraction_performDrop_(_m,_c,interaction,session):
session=ObjCInstance(session)
def handler(_cmd,obj_ptr):
obj=ObjCInstance(obj_ptr)
print(obj)
handler_block = ObjCBlock(handler, restype=None, argtypes=[c_void_p,c_void_p])
def ptimer(progress):
while True:
if(progress.totalUnitCount()==progress.completedUnitCount()):
break
time.sleep(0.1)
for item in session.items():
itemProvider =item.itemProvider()
uiimage =ObjCClass('UIImage')
if(itemProvider.canLoadObjectOfClass(uiimage)):
progress=itemProvider.loadObjectOfClass_completionHandler_(ObjCClass('UIImage'),handler_block)
ptimer(progress)
elif(itemProvider.canLoadObjectOfClass(NSString)):
progress=itemProvider.loadObjectOfClass_completionHandler_(NSString,handler_block)
ptimer(progress)
else:
print(itemProvider)
methods=[dropInteraction_canHandleSession_,dropInteraction_sessionDidUpdate_,dropInteraction_performDrop_]
protocols=['UIDropInteractionDelegate']
dropDelegate=create_objc_class('MydropDelegate',methods=methods,protocols=protocols)
Delegate=dropDelegate.alloc().init()
dropInteraction=ObjCClass('UIDropInteraction').alloc().initWithDelegate(Delegate)
drop_view = ui.View(bg_color='blue')
drop_view.objc_instance.setUserInteractionEnabled(True)
drop_view.objc_instance.addInteraction(dropInteraction)
drop_view.present()