public void CloseModal() { if (closing || topModal == null) { return; } closing = true; NavigationItem.LeftBarButtonItem = null; var tb = new UITextField(new RectangleF(0, -40, 40, 40)); if (topModal is UIViewController) { var vcv = (topModal as UIViewController).View; vcv.AddSubview(tb); tb.BecomeFirstResponder(); tb.ResignFirstResponder(); this.NavigationController.PopViewControllerAnimated(false); MainView.AddSubview(vcv); topModal = vcv; } var modal = topModal as UIView; modal.AddSubview(tb); tb.BecomeFirstResponder(); tb.ResignFirstResponder(); UIView.BeginAnimations("closeModel"); UIView.SetAnimationDuration(AnimationSpeed); UIView.SetAnimationCurve(UIViewAnimationCurve.EaseIn); UIView.SetAnimationDelegate(this); UIView.SetAnimationDidStopSelector(new Selector("fadeOutDidFinish")); modal.Transform = CGAffineTransform.MakeScale(0.2f, 0.2f); modal.Alpha = 0.5f; UIView.CommitAnimations(); }
private bool ShouldReturn(UITextField textField) { if (textField.ReturnKeyType == UIReturnKeyType.Done) { // we are done, hide the keyboard View.EndEditing(true); // nothing else to edit, why not just saving the form? Save(); return(false); } var nextTag = textField.Tag + 1; UIResponder nextControl = _contentView.ViewWithTag(nextTag); if (nextControl != null) { // set focus on the next control nextControl.BecomeFirstResponder(); } else { // Not found, hide keyboard. View.EndEditing(true); } return(false); }
public void ShouldChangeText_NullResponderAndOldText_ReturnsExpectedResult(UIResponder responder, string oldText) { var filter = new ForbiddenCharsFilter('%'); var result = filter.ShouldChangeText(responder, oldText, new NSRange(1, 1), "new"); Assert.True(result); }
//#pragma mark - Default special action. public void _dismissKeyboard(object sender) { UIResponder firstResponder = (UIResponder)this.keyInput; if (firstResponder != null) { firstResponder.ResignFirstResponder(); } }
public void FadeOutDidFinish() { var modal = (UIView)topModal; modal.Transform = CGAffineTransform.MakeScale(1f, 1f); modal.RemoveFromSuperview(); topModal = null; closing = false; }
public static UIViewController FindUIViewController(this UIView view) { UIResponder responder = view; while (responder != null && !(responder is UIViewController)) { responder = responder.NextResponder; } return((UIViewController)responder); }
UIViewController GetViewController() { UIResponder r = this; while (r != null) { var c = r as UIViewController; if (c != null) return c; r = r.NextResponder; } return null; }
public virtual void OnReturnMoveTo(UITextField textField, UIResponder moveToField) { this.ExecuteMethod("OnReturnMoveTo", delegate() { if (this.ReturnMoveToFields == null) { this.ReturnMoveToFields = new Dictionary <UITextField, UIResponder>(); } textField.ShouldReturn += OnReturnMoveTo_ShouldReturn; this.ReturnMoveToFields[textField] = moveToField; }); }
public virtual void OnReturnMoveTo(UITextView textView, UIResponder moveToField) { this.ExecuteMethod("OnReturnMoveTo", delegate() { if (this.NewLineMoveToFields == null) { this.NewLineMoveToFields = new Dictionary <UITextView, UIResponder>(); } textView.ShouldChangeText += OnNewLineMoveTo_ShouldChangeText; this.NewLineMoveToFields[textView] = moveToField; }); }
private UIViewController GetViewController(iPhoneOSGameView form) { for (UIResponder uiResponder = form; uiResponder != null; uiResponder = uiResponder.NextResponder) { UIViewController uiViewController = uiResponder as UIViewController; if (uiViewController != null) { return(uiViewController); } } return(null); }
private static UIResponder FindViewControllerInternal(UIResponder responder) { if (responder is UIViewController) { return(responder); } if (responder is UIView) { return(FindViewController(responder.NextResponder)); } return(null); }
protected virtual void ChangeSelectedRange(UIResponder responder, nint cursorPosition, string newText) { switch (responder) { case UITextField textField: ChangeSelectedRange(textField, cursorPosition, newText); break; case UITextView textView: ChangeSelectedRange(textView, cursorPosition, newText); break; } }
UIViewController GetParentViewController() { UIResponder responder = this.Container; while ((responder = responder.NextResponder) != null) { if (responder is UIViewController) { return((UIViewController)responder); } } return(null); }
public UIViewController FindParentViewController() { UIResponder parentResponder = this; while (parentResponder != null) { if (parentResponder is UIViewController) { return((UIViewController)parentResponder); } parentResponder = parentResponder.NextResponder; } return(null); }
private UIViewController GetViewController() { UIResponder r = this; while (r != null) { var c = r as UIViewController; if (c != null) { return(c); } r = r.NextResponder; } return(null); }
protected bool TextFieldShouldReturn(UITextField textField) { var nextTag = textField.Tag + 1; UIResponder nextResponder = this.View.ViewWithTag(nextTag); if (nextResponder != null) { nextResponder.BecomeFirstResponder(); } else { textField.ResignFirstResponder(); } return(false); }
public static UIViewController GetViewController(this UIView view) { UIResponder responder = view; while (!(responder is UIViewController)) { responder = responder.NextResponder; if (responder == null) { break; } } return((UIViewController)responder); }
/// <summary> /// Selects next TextField to become FirstResponder. /// Usage: textField.ShouldReturn += TextFieldShouldReturn; /// </summary> /// <returns></returns> /// <param name="textField">The TextField</param> public bool TextFieldShouldReturn(UITextField textField) { var nextTag = textField.Tag + 1; UIResponder nextResponder = this.View.ViewWithTag(nextTag); if (nextResponder != null) { nextResponder.BecomeFirstResponder(); } else { // Not found, so remove keyboard. textField.ResignFirstResponder(); } return(false); // We do not want UITextField to insert line-breaks. }
private static UIView CreateToolbar(CGRect frame, string buttonTitle, UIResponder next, Action onEnter) { var toolbar = new UIToolbar(new CGRect(0, 0, frame.Size.Width, 50)); var button = new UIBarButtonItem(buttonTitle, UIBarButtonItemStyle.Plain, (_, _) => { next?.BecomeFirstResponder(); onEnter?.Invoke(); }); toolbar.Items = new[] { new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace), button }; toolbar.SizeToFit(); return(toolbar); }
/* * Handler for moving through TextFields and hiding the keyboard * */ private bool TextFieldShouldReturn(UITextField textField) { nint nextTag = textField.Tag + 1; UIResponder nextResponder = this.View.ViewWithTag(nextTag); if (nextResponder != null) { nextResponder.BecomeFirstResponder(); } else { // Not found, so remove keyboard. textField.ResignFirstResponder(); } return(false); }
private bool TextFieldShouldReturn(UITextField textfield) { int nextTag = (int)textfield.Tag + 1; UIResponder nextResponder = this.View.ViewWithTag(nextTag); if (nextResponder != null) { nextResponder.BecomeFirstResponder(); AutoCompleteTextFieldManager.RemoveTable(); } else { // Not found, so remove keyboard. textfield.ResignFirstResponder(); } return(false); // We do not want UITextField to insert line-breaks. }
/// <summary> /// Implements the behaviour of the return button /// </summary> /// <returns>Always <c>false</c>, because we do not want a line break</returns> /// <param name="textfield">Textfield.</param> bool TextFieldShouldReturn(UITextField textfield) { int nextTag = (int)textfield.Tag + 1; UIResponder nextResponder = View.ViewWithTag(nextTag); if (nextResponder != null) { nextResponder.BecomeFirstResponder(); } else { // Remove keyboard, then connect textfield.ResignFirstResponder(); if (ShouldPerformSegue(strings.serverConnectToDevicesSegue, this)) { PerformSegue(strings.serverConnectToDevicesSegue, this); } } return(false); }
public void LaunchModal(UIResponder responder) { if (closing || Adding) { return; } Adding = true; topModal = responder; if (responder is UIView) { var modal = responder as UIView; modal.Frame = MainView.Frame; AddViewToScreen(modal); } else if (responder is UIViewController) { AddViewControllerToScreen(); } }
private bool textFieldShouldReturn(UITextField txt) { if (txt.Tag <= 0) { txt.ResignFirstResponder(); return(false); } nint nextTag = txt.Tag + 1; UIResponder nextResponder = controller.View.ViewWithTag(nextTag); if (nextResponder != null) { nextResponder.BecomeFirstResponder(); } else { txt.ResignFirstResponder(); } return(false); }
private static bool IsBubbleEventHandler(UIResponder responder, string eventType, out MethodInfo handler) { handler = null; Type type = responder.GetType(); MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); foreach (var m in methods) { BubbleEventHandlerAttribute attr = m.GetCustomAttribute<BubbleEventHandlerAttribute>(); if (attr == null) continue; if (attr.EventType == eventType) { handler = m; return true; } } return false; }
private bool OpenURL(NSUrl url) { UIResponder responder = this as UIResponder; while (responder != null) { var application = responder as UIApplication; if (application != null) { var _url = url; application.PerformSelector(new ObjCRuntime.Selector("openURL:"), _url, 0); return(true); } responder = responder.NextResponder; } return(false); }
/// <inheritdoc cref="ITextFilter" /> public virtual bool ShouldChangeText(UIResponder responder, string?oldText, NSRange range, string inputText) { var newText = oldText ?? string.Empty; newText = newText .Remove((int)range.Location, (int)range.Length) .Insert((int)range.Location, inputText); if (newText.Length <= _maxLength) { return(true); } if (IsCharacterOverwritingEnabled) { newText = newText.Substring(0, _maxLength); var cursorPosition = (nint)Math.Min(range.Location + inputText.Length, newText.Length); ChangeSelectedRange(responder, cursorPosition, newText); } return(false); }
private void loadOnThread() { using (new NSAutoreleasePool()) { if (ShowLoadingMessage) { //loading = new MBProgressHUD(Util); //loading.Show(true); } // UIKit Consistency error: you are calling a UIKit method that can only be invoked from the UI thread. //modalview = ModalView == null ? null : ModalView(); if (ModalView == null) { modalview = null; } else { InvokeOnMainThread(() => { modalview = ModalView(); }); } InvokeOnMainThread(delegate { loadComplete(); }); } }
public void FadeOutDidFinish() { var modal = (UIView)topModal; modal.Transform = CGAffineTransform.MakeScale (1f, 1f); modal.RemoveFromSuperview (); topModal = null; closing = false; }
public override bool ForceTextInputbarAdjustmentForResponder(UIResponder responder) { // On iOS 9, returning YES helps keeping the input view visible when the keyboard if // presented from another app when using multi-tasking on iPad. return(UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad); }
public static UIViewController FindViewController(this UIResponder responder) { return((UIViewController)FindViewControllerInternal(responder)); }
private void loadOnThread() { using(new NSAutoreleasePool()) { if(ShowLoadingMessage) { //loading = new MBProgressHUD(Util); //loading.Show(true); } // UIKit Consistency error: you are calling a UIKit method that can only be invoked from the UI thread. //modalview = ModalView == null ? null : ModalView(); if (ModalView == null) modalview = null; else InvokeOnMainThread(() => {modalview = ModalView();}); InvokeOnMainThread(delegate {loadComplete();}); } }
public static UITextField AddToolbar(this UITextField input, string buttonTitle, UIResponder next = null, Action onEnter = null) { input.InputAccessoryView = CreateToolbar(input.Frame, buttonTitle, next, onEnter); return(input); }
public override bool ForceTextInputbarAdjustmentForResponder (UIResponder responder) { // On iOS 9, returning YES helps keeping the input view visible when the keyboard if // presented from another app when using multi-tasking on iPad. return UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad; }
public void LaunchModal(UIResponder responder) { if(closing || Adding) return; Adding = true; topModal = responder; if (responder is UIView) { var modal = responder as UIView; modal.Frame = MainView.Frame; AddViewToScreen (modal); } else if (responder is UIViewController) { AddViewControllerToScreen (); } }
public void CloseModal() { if(closing || topModal == null) return; closing = true; NavigationItem.LeftBarButtonItem = null; var tb = new UITextField(new RectangleF(0,-40,40,40)); if (topModal is UIViewController) { var vcv = (topModal as UIViewController).View; vcv.AddSubview(tb); tb.BecomeFirstResponder(); tb.ResignFirstResponder(); this.NavigationController.PopViewControllerAnimated (false); MainView.AddSubview (vcv); topModal = vcv; } var modal = topModal as UIView; modal.AddSubview(tb); tb.BecomeFirstResponder(); tb.ResignFirstResponder(); UIView.BeginAnimations ("closeModel"); UIView.SetAnimationDuration (AnimationSpeed); UIView.SetAnimationCurve(UIViewAnimationCurve.EaseIn); UIView.SetAnimationDelegate (this); UIView.SetAnimationDidStopSelector (new Selector ("fadeOutDidFinish")); modal.Transform = CGAffineTransform.MakeScale (0.2f, 0.2f); modal.Alpha = 0.5f; UIView.CommitAnimations (); }