Ich wollte eine Version von diesem, die für den Rücktritt von jeder Ansicht funktionierte, ohne bestimmte Ausgänge für jeden zu verlangen .. Hier ist meine Lösung, die ich in eine von meinen Standard-Containern Ansichten ..
Es ist mit Monotouch C#, obwohl es offensichtlich sein sollte, wie es konvertieren zu Objective-C
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);
}
Große Lösung! – DeZigny
Ich würde mich freuen, dem downvoter zu helfen, wenn das nicht für sie funktioniert .. einfach einen Kommentar hinterlassen oder eine neue Frage beginnen und hier verlinken. – ohhorob
ohhorob, funktioniert diese Lösung nicht, wenn wir auf eine andere Steckdose in Sicht klicken, können Sie mir dabei helfen? – TilalHusain