【发布时间】:2011-05-01 20:21:20
【问题描述】:
我正在使用 Monotouch 为 iPhone 开发应用程序。
在我只有 iPhone 的应用程序中,只要用户选择文本字段,我就会出现 InputAccessoryView。附件视图提供帮助用户的按钮(撤消/重做等)。
它在模拟器和 iPhone 设备上运行良好。
但是,出乎意料的是,输入附件视图没有出现在 iPad 上。我没有对有关视图的代码进行任何更改;我什至回滚到我知道正确显示附件视图的版本。
我想知道之前是否有其他人遇到过这种行为/知道为什么会发生这种情况?
编辑
我在 ipad 上运行的 所有 iphone 项目中都看到了这个。我做了一个新项目,它只包含一个视图,一个UITextField 并覆盖了输入附件视图,但我仍然什么也没看到。
我用来测试输入视图覆盖的代码是:
public override UIView InputAccessoryView
{
get
{
UIView view = new UIView(new RectangleF(0,0,320,30));
view.BackgroundColor = UIColor.Blue;
return view;
}
}
没什么太复杂的,在 iPhone 上只是在键盘上方返回一个蓝条。
我已多次重新安装 Mono、MonoDevelop、Monotouch 和 iOS SDK,但均无济于事。我从商店下载的应用程序仍然显示输入附件视图,所以我开始怀疑这是否是我的 Monotouch/iOS SDK 组合的问题?我正在使用 Monotouch 3.1.3 个人版和 4.1 iOS SDK - Mono 的 2.6 版。我将尝试更新到 Mono 2.8 版。
我不明白的是为什么它以前会工作然后突然停止工作?
当我在 iPad 上部署代码时,我选择“全部重建”,然后上传到设备。如果我选择发布/调试作为构建,这并不重要,两者都会产生相同的结果。
编辑 2
如果我将 UITextField 子类化并覆盖该子类中的 InputAccessoryView,则视图会出现在 iPad 上。这意味着在 View 类中被覆盖的InputAccessoryView 没有分配给 ipad 上的 Textfield。
编辑 3 看来这已在 iOS 4.2 和 Monotouch 3.2 中得到修复!
【问题讨论】:
-
您能否详细说明在 iPad 上部署代码时您会做什么?您是否尝试在 iPad 上运行 iPhone 应用程序(未修改)?或者您是否设置了一个新的 iPad 项目,复制了代码,然后观察到行为有所不同?您能否发布一个重现该行为的最小代码/设置?
标签: c# iphone objective-c ipad xamarin.ios