Package cli.MonoTouch.Foundation

Examples of cli.MonoTouch.Foundation.NSNotificationCenter


                @Override public void Invoke (NSNotification nf) {
                    IOSNativeTextField field = _activeFields.get(nf.get_Object());
                    if (field != null) field.didFinish();
                }});

        NSNotificationCenter center = NSNotificationCenter.get_DefaultCenter();

        // observe UITextField
        center.AddObserver(UITextField.get_TextDidBeginEditingNotification(), didBegin);
        center.AddObserver(UITextField.get_TextFieldTextDidChangeNotification(), change);
        center.AddObserver(UITextField.get_TextDidEndEditingNotification(), didEnd);

        // observe UITextView
        center.AddObserver(UITextView.get_TextDidBeginEditingNotification(), didBegin);
        center.AddObserver(UITextView.get_TextDidChangeNotification(), change);
        center.AddObserver(UITextView.get_TextDidEndEditingNotification(), didEnd);

        // slide the game view up when the keyboard is displayed
        center.AddObserver(UIKeyboard.get_DidShowNotification(),
            new cli.System.Action$$00601_$$$_Lcli__MonoTouch__Foundation__NSNotification_$$$$_(new cli.System.Action$$00601_$$$_Lcli__MonoTouch__Foundation__NSNotification_$$$$_.Method() {
                @Override public void Invoke (NSNotification nf) {
                    if (_gameViewTransformed) {
                        // already transformed, bail with a warning
                        log.warning("Keyboard shown when already showing?", "viewTransform",
                                    _gameViewTransform);
                        return;
                    }

                    // find the first responder
                    IOSNativeTextField firstResponder = findFirstResponder();
                    if (firstResponder == null) return; // it's not a field we're managing, bail

                    // figure out how we need to transform the game view
                    SizeF size = ((NSValue) nf.get_UserInfo().get_Item(
                        UIKeyboard.get_FrameBeginUserInfoKey())).get_RectangleFValue().get_Size();
                    RectangleF fieldFrame = firstResponder.getView().get_Frame();
                    // oddly, the size given for keyboard dimensions is portrait, always.
                    float targetOffset = -size.get_Width() +
                        _overlay.get_Bounds().get_Height() - fieldFrame.get_Bottom();
                    // give it a little padding, and make sure we never move the game view down,
                    // also make sure we never move the bottom of the game view past the top of the
                    // keyboard
                    targetOffset = Math.max(Math.min(targetOffset - 10, 0), -size.get_Width());
                    PointF target = new PointF(0, targetOffset);
                    target = _overlay.get_Transform().TransformPoint(target);

                    // update and set the transform on the game view
                    UIView gameView = _overlay.get_Superview();
                    CGAffineTransform trans = gameView.get_Transform();
                    _gameViewTransform = trans.Invert().Invert(); // clone
                    trans.Translate(target.get_X(), target.get_Y());
                    gameView.set_Transform(trans);
                    _gameViewTransformed = true;

                    // touches outside of the keyboard will close the keyboard
                    _overlay.Add(_touchDetector);
                }}));

        center.AddObserver(UIKeyboard.get_WillHideNotification(),
            new cli.System.Action$$00601_$$$_Lcli__MonoTouch__Foundation__NSNotification_$$$$_(new cli.System.Action$$00601_$$$_Lcli__MonoTouch__Foundation__NSNotification_$$$$_.Method() {
                @Override public void Invoke (NSNotification nf) {
                    // bail if not transformed; this might be ok, if the keyboard was shown outside
                    // of our purview
                    if (!_gameViewTransformed) return;

                    UIView gameView = _overlay.get_Superview();
                    gameView.set_Transform(_gameViewTransform);
                    _gameViewTransform = null;
                    _gameViewTransformed = false;
                    _touchDetector.RemoveFromSuperview();
                    _platform._focus.update(null);
                }}));

        _currentOrientation = UIDevice.get_CurrentDevice().get_Orientation().Value;
        center.AddObserver(UIDevice.get_OrientationDidChangeNotification(),
            new cli.System.Action$$00601_$$$_Lcli__MonoTouch__Foundation__NSNotification_$$$$_(new cli.System.Action$$00601_$$$_Lcli__MonoTouch__Foundation__NSNotification_$$$$_.Method() {
                @Override
                public void Invoke (NSNotification nf) {
                    UIDeviceOrientation orient = UIDevice.get_CurrentDevice().get_Orientation();
                    if (orient.Value == _currentOrientation) return; // NOOP
View Full Code Here

TOP

Related Classes of cli.MonoTouch.Foundation.NSNotificationCenter

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.