0

我编写了一个自定义输入视图,用于替换UITextView. 如果我将我的 custom 指定UIView为 my UITextView's inputView,它在纵向和横向模式下都可以正常工作。

当我旋转设备时会出现问题 - 每当我这样做时,我的自定义UIView扩展以填充整个屏幕,而不是仅仅覆盖键盘。我在任何地方都没有任何自定义大小调整代码 - 我实际上只是将 UIView 分配为 UITextView 的 inputView 属性,然后旋转设备。

当我旋转设备时,如何让我的自定义键盘视图只占用普通键盘占用的空间?

4

4 回答 4

5

来自苹果文档:

在定义输入视图或输入附件视图的大小和内容方面,您有很大的灵活性。尽管这些视图的高度可以是您想要的,但它们应该与系统键盘的宽度相同。如果 UIKit 在其自动调整掩码中遇到具有 UIViewAutoresizingFlexibleHeight 值的输入视图,它会更改高度以匹配键盘。

http://developer.apple.com/library/ios/#Documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/InputViews/InputViews.html#//apple_ref/doc/uid/TP40009542-CH12-SW1

于 2012-10-12T08:14:47.507 回答
2

如果我记得的话,默认情况下是autoresizingMaskUIViewAutoresizingNoneautoresizingMask应该是UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleTopMargin

于 2011-06-09T16:51:35.383 回答
2

我有这个问题。解决这个问题的方法是:

  1. 打开键盘的viewcontroller.m文件

  2. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation方法

  3. 让它返回NO。

我的猜测是视图进行了双重旋转。

于 2011-07-02T03:39:33.707 回答
1

让你的 inputViews autoresizingMask = UIViewAutoresizingNone; 使用不同的 autoresizingMask 值(特定于版本)会有所帮助。

以下是一些细节,我为 iPad 制定了一段时间(可能会对您有所帮助):

  1. 如果输入视图是 Picker 视图,默认情况下会自动调整大小,这意味着框架设置为所需的矩形。在 iPad 的不同目标/版本中执行此操作的方式存在一些差异:
    1. autoresizemask至少应该autoresizeflexiblewidth在所有目标中。
    2. 如果在 iPad3.2 中未启用 Rect 设置为default(initial)高度autoresizeflexibleheight
    3. 如果在 iPad4 中设置 Rect 设置为不正确的坐标 (x,y),则autoresizeflexibleheight不要autoresizeflexibleheight为选取器视图使用掩码。
  2. 如果inputview不是一个选择器视图,它的autoresizemasksforflexibleheight应该被关闭。
于 2011-06-09T16:32:56.830 回答