我有一个简单的按钮被添加到一个UINavigationBar,最小的操作系统是3.2,我们用默认的编译器编译。我有MT 5.0:
saleImg = UIImage.FromFileUncached (shoppingImg);
saleButton = new UIBarButtonItem ("", UIBarButtonItemStyle.Bordered, (s, o) => {ItunesHelper.Open (); });
saleButton.SetBackgroundImage(saleImg,UIControlState.Normal,UIBarMetrics.Default);
saleButton.SetBackgroundImage(saleImg,UIControlState.Selected, UIBarMetrics.Default);
saleButton.SetBackgroundImage(saleImg,UIControlState.Highlighted, UIBarMetrics.Default);但在运行时,它会抛出错误:
Objective-C exception thrown. Name: NSInvalidArgumentException Reason: -[UIBarButtonItem setBackgroundImage:forState:barMetrics:]: unrecognized selector sent to instance 0x76d4d00
发布于 2011-11-21 15:03:09
iOS 5引入了UIBarButtonItem.SetBackgroundImage方法。因为你得到了一个“无法识别的选择器...”消息,我只能假设您在iOS版本早于5.0的设备上运行该应用程序。
如果您希望您的应用程序向后兼容,请创建一个按钮并使用UIBarButtonItem(UIView)构造函数初始化UIBarButtonItem:
UIButton button = UIButton.FromType(UIButtonType.Custom);
button.SetBackgroundImage(saleImg, UIControlState.Normal);
button.TouchUpInside += (s, o) => {ItunesHelper.Open (); };
UIBarButtonItem saleButton = new UIBarButtonItem(button);设置最低操作系统版本并不意味着MonoDevelop或编译器会通知您应用编程接口兼容性。这只是Info.plist中的一个设置,它将决定你的应用程序是否会出现在该版本的设备的应用程序商店中。
https://stackoverflow.com/questions/8206903
复制相似问题