Hi Nic,
I have implemented parts from Your solution, one more question though, what is
the purpose of
animationDuration = UIKeyboard.AnimationDurationFromNotification(notification) ?
Because as far as I can see, everything animates without any explicit
declaration of animation.
Here is my code:
//WillShow
observer1 = NSNotificationCenter
.DefaultCenter
.AddObserver
(
UIKeyboard.WillShowNotification
,delegate(NSNotification notification)
{
RectangleF frame;
if(notification != null)
{
RectangleF kbdRect =
UIKeyboard.FrameEndFromNotification(notification);
//double animationDuration =
UIKeyboard.AnimationDurationFromNotification(notification);
if(notification.Name ==
UIKeyboard.WillShowNotification || notification.Name ==
UIKeyboard.DidShowNotification)
{
if(this.NavigationController.InterfaceOrientation ==
UIInterfaceOrientation.Portrait)
{
frame = textView.Frame;
frame.Height -=
kbdRect.Height;
textView.Frame = frame;
}
else
{
frame = textView.Frame;
frame.Height -=
kbdRect.Width;
textView.Frame = frame;
}
}
else
frame = new RectangleF(0,0,0,0);
}
else
{
//keyboardHeight =
VisibleKeyboardHeight;
}
}
);
On Feb 19, 2013, at 12:10 AM, Iki <[email protected]> wrote:
> Thanks Nic, i will use this instead!
>
>
> On Feb 18, 2013, at 12:38 PM, Nic Wise <[email protected]> wrote:
>
>> Thanks for posting this, Iki, I was just doing something simlar the other
>> day.
>>
>> UIKeyboard.BoundsFromNotification has been deprecated, so you might
>> want to use this:
>>
>> if(notification != null)
>> {
>> RectangleF keyboardFrame = UIKeyboard.FrameEndFromNotification(notification);
>> animationDuration =
>> UIKeyboard.AnimationDurationFromNotification(notification);
>>
>> if(notification.Name == UIKeyboard.WillShowNotification ||
>> notification.Name == UIKeyboard.DidShowNotification)
>> {
>> if(IsPortrate(orientation))
>> keyboardHeight = keyboardFrame.Size.Height;
>> else
>> keyboardHeight = keyboardFrame.Size.Width;
>> } else
>>
>> keyboardHeight = 0;
>>
>> } else {
>> keyboardHeight = VisibleKeyboardHeight;
>> }
>>
>> The FrameEndFromNotifiation is where the keyboard is when the animation ends.
>>
>>
>>
>> On 17 February 2013 09:50, Iki <[email protected]> wrote:
>>> Hello everyone, i have found solution, and quite elegant one. It was on my
>>> table the whole time :), inside of a book, Professional iPhone Programming
>>> with MonoTouch and .NET/C# by Wallace B McClure, Martin Bowling, Craig Dunn,
>>> Chris Hardy and Rory Blyth.
>>>
>>> So i hope this may help someone, i have found couple solutions on the net
>>> but they all have some kind of problems …
>>>
>>> So i have UITextView, and the following code in my UIViewController.
>>>
>>>
>>> NSObject observer1, observer2;
>>>
>>> //++++ViewDidLoad++++
>>> //Observing Keyboard
>>> notifications-------------------------------------------
>>> //WillShow
>>> observer1 = NSNotificationCenter
>>> .DefaultCenter
>>> .AddObserver
>>> (
>>> UIKeyboard.WillShowNotification
>>> ,delegate(NSNotification obj)
>>> {
>>> var kbdRect = UIKeyboard.BoundsFromNotification(obj);
>>> var frame = textView.Frame;
>>> frame.Height -= kbdRect.Height;
>>> textView.Frame = frame;
>>> }
>>> );
>>> //WillHide
>>> observer2 = NSNotificationCenter
>>> .DefaultCenter
>>> .AddObserver
>>> (
>>> UIKeyboard.WillHideNotification
>>> ,delegate(NSNotification obj)
>>> {
>>> var kbdRect = UIKeyboard.BoundsFromNotification(obj);
>>> var frame = textView.Frame;
>>> frame.Height += kbdRect.Height;
>>> textView.Frame = frame;
>>>
>>>
>>> }
>>> );
>>> //---------------------------------------------------------------------------
>>>
>>> //++++ViewDidUnload++++ (apparently this is only necessary for iOS versions
>>> < 6.0)
>>> //Unsubscribing from observers------------------------------
>>> NSNotificationCenter.DefaultCenter.RemoveObserver(observer1);
>>> NSNotificationCenter.DefaultCenter.RemoveObserver(observer1);
>>> //----------------------------------------------------------
>>>
>>>
>>>
>>>
>>> On Feb 15, 2013, at 1:13 PM, Iki <[email protected]> wrote:
>>>
>>> Hi guys,
>>>
>>> the problem is:
>>>
>>> I have UITextView, stretched trough whole screen. When typing eventually
>>> text will go behind the keyboard, and the only way for me to scroll it is to
>>> press return 20 times or so.
>>> Is there any way to accomplish this manually, so that the TextView scroll
>>> automatically as i type?
>>>
>>> Thanks for any help guys/gals!
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> MonoTouch mailing list
>>> [email protected]
>>> http://lists.ximian.com/mailman/listinfo/monotouch
>>>
>>
>>
>>
>> --
>> Nic Wise
>> t. +44 7788 592 806 | @fastchicken
>> b. http://www.fastchicken.co.nz/
>
_______________________________________________
MonoTouch mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/monotouch