我将objective-c代码翻译成Xamarion.iOS。
在objective-c中,我有以下代码。
- (void)keyboardWasShown: (NSNotification*)aNotification
{
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboadFrameBeginUserInfoKey] CGRectValue].size;
. . .
}
问题是info objectForKey返回一个具有CGRectValue方法的Id对象。
但在Xamarin我有......
private void KeyboardWasShown(NSNotification notification)
{
var info = notification.UserInfo;
var kbSize = (info.ObjectForKey(UIKit.UIKeyboard.FrameBeginUserInfoKey)).??
. . .
}
在Xamarin中,NSDictionary返回一个NSObject,但objective-c版本返回一个Id对象。 NSObject没有CGRectValue方法。
我的问题是Xamarin使用Id对象做了什么,以及我应该使用什么类来获取CGRectValue。虽然我错过了一些东西,但我试过去UIView,但这并没有帮助。
我已经尝试使用谷歌搜索,但我只是在iOSDevice Id上获得了大量点击。
修改 我还没有机会测试这个,但我想我找到了一种可能的方法。
var kbSize = ((UIView) info.ObjectForKey(UIKit.UIKeyboard.FrameBeginUserInfoKey)).Frame.Size;
在我有机会测试从该Id返回的对象是否为UIView类型之前,我需要一段时间。