Я переводил код цели-c в Xamarion.iOS.Xamarin where is Id object
В объективе-c У меня есть следующий код.
- (void)keyboardWasShown: (NSNotification*)aNotification
{
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboadFrameBeginUserInfoKey] CGRectValue].size;
. . .
}
Проблема в том, что информация objectForKey возвращает объект Id, который имеет метод CGRectValue.
Но в Xamarin у меня есть ...
private void KeyboardWasShown(NSNotification notification)
{
var info = notification.UserInfo;
var kbSize = (info.ObjectForKey(UIKit.UIKeyboard.FrameBeginUserInfoKey)).??
. . .
}
В Xamarin NSDictionary возвращает NSObject, но Objective-C версия возвращает идентификатор объекта. NSObject не имеет метода CGRectValue.
Мой вопрос в том, что сделал Xamarin с объектами Id и какой класс следует использовать для получения CGRectValue. Я пробовал кастинг в UIView, но это не помогло, если я не пропустил что-то.
Я пробовал поиск по сайту, но я просто получаю кучу хитов на iOSDevice Id.
Редактировать: У меня не было возможности проверить это, но я думаю, что нашел способ добраться до него, возможно.
var kbSize = ((UIView) info.ObjectForKey(UIKit.UIKeyboard.FrameBeginUserInfoKey)).Frame.Size;
Он примет меня когда-нибудь, прежде чем я получу шанс, чтобы проверить, если объект, возвращаемый от Id имеет тип UIView.
совершенен! Я надеялся, что там будет лучшее решение, а затем кастинг. – mac10688