मैं इस संस्करण का एक संस्करण चाहता था जो किसी भी दृश्य से इस्तीफा देने के लिए काम करता था, बिना प्रत्येक के लिए विशिष्ट आउटलेट की आवश्यकता के .. यहां मेरा समाधान है, जो मैं अपने मानक कंटेनर दृश्यों में से एक में डाल दिया ..
यह उपयोग कर रहा है MonoTouch सी #, हालांकि यह कैसे ऑब्जेक्टिव-सी करने के लिए इसे परिवर्तित करने के लिए स्पष्ट होना चाहिए
private void findAndResignFirstResponder(UIView node=null) {
if (node == null) { return; }
if (node.IsFirstResponder) {
node.ResignFirstResponder();
return;
}
foreach (UIView view in node.Subviews) {
findAndResignFirstResponder(node:view);
}
}
private bool haveDrag = false;
public override void TouchesEnded(NSSet touches, UIEvent evt) {
if (!haveDrag) {
UITouch touch = (UITouch)evt.AllTouches.AnyObject;
if (!touch.View.CanBecomeFirstResponder) {
this.findAndResignFirstResponder(this);
Console.WriteLine("resign");
}
}
base.TouchesEnded (touches, evt);
}
public override void TouchesMoved(NSSet touches, UIEvent evt) {
haveDrag = true;
base.TouchesMoved (touches, evt);
}
public override void TouchesBegan(NSSet touches, UIEvent evt) {
haveDrag = false;
base.TouchesBegan (touches, evt);
}
स्रोत
2013-02-13 23:26:14
ग्रेट सॉल्यूशन! – DeZigny
अगर डाउनवॉटर की मदद करने में मुझे खुशी होगी तो यह उनके लिए काम नहीं कर रहा है .. बस एक टिप्पणी छोड़ें या एक नया प्रश्न शुरू करें और यहां लिंक करें। – ohhorob
ओहोरोब, यह समाधान काम नहीं कर रहा है अगर हम किसी अन्य आउटलेट पर क्लिक करते हैं, तो क्या आप इसके साथ मेरी मदद कर सकते हैं? – TilalHusain