Я пытаюсь преобразовать этот кусок кода на C#, код от компании Apple documentationПереход от Obj C до C#
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbSize.height, 0.0);
scrollView.contentInset = contentInsets;
scrollView.scrollIndicatorInsets = contentInsets;
CGRect aRect = self.view.frame;
aRect.size.height -= kbSize.height;
if (!CGRectContainsPoint(aRect, activeField.frame.origin)) {
CGPoint scrollPoint = CGPointMake(0.0, activeField.frame.origin.y-kbSize.height);
[scrollView setContentOffset:scrollPoint animated:YES];
До сих пор это моя попытка, я застрять на CGRectValue.
NSDictionary info = n.UserInfo;
SizeF kbSize = ((RectangleF)info[UIKeyboard.FrameBeginUserInfoKey]).Size;
UIEdgeInsets contentInsets = new UIEdgeInsets(0.0f, 0.0f, kbSize.Height, 0.0f);
this.uiScrollView.ContentInset = contentInsets;
this.uiScrollView.ScrollIndicatorInsets = contentInsets;
RectangleF aRect = this.View.Frame;
aRect.Size.Height -= kbSize.Height;
if(!aRect.Contains(_currentField.Frame))
{
PointF scrollPoint = new PointF(0.0f, _currentField.Frame.Y - kbSize.Height);
this.uiScrollView.SetContentOffset(scrollPoint, true);
}
Возможно, я не использую подходящий тип, может кто-то помочь мне, или какой-нибудь альтернативный код, делающий подобную вещь. Благодаря
Я не уверен, что вы подразумеваете под «Я зацикливаюсь на CGRectValue». Отмечает ли отладчик, что все ранее упомянутые переменные имеют значения, которые вы ожидаете? Что показывает отладчик о aRect после aRect = self.view.frame? –
Я не могу преобразовать эту строку в код C#. Он не компилируется. Пожалуйста, см. Код C#, который я пробовал. –
Как вы получаете '_currentField'? Я также конвертирую учебник * [iOS SDK: хранение содержимого из-под клавиатуры] (http://code.tutsplus.com/tutorials/ios-sdk-keeping-content-from-underneath-the-keyboard--mobile -6103) * ... – testing