iPhone - UITextView 应该像 UITextField 一样显示

3

我需要一个文本框,以便用户可以写入多行文本。不幸的是,UITextField 不支持多行文本,所以我想我必须使用 UITextView。

但是两者的设计并不相同。

是否可能将 UITextView 设计成具有白色背景和圆角的 UITextField 标准样式?

非常感谢您的帮助!祝一切顺利!


谢谢你的差评,Tim ;) 但这是最好的解决方法。记住,如果你想要阴影效果,可以使用自己的想法并将按钮的背景图像设置为带有阴影的图像。 - Madhup Singh Yadav
嘿,Madhup。我没有给你投反对票,因为我不能这样做!在我能够投反对票之前,我需要超过100个声望值。那是另一个人,不是我!你的想法很好,我测试了一下,但是没有阴影。所以我尝试用图片来实现,但是键盘有问题,因为它在UITextView的前面,用户看不到自己的输入。 - Tim
如果您想要通过键盘将文本视图向上和向下移动,则需要执行一些动画。您应该首先查看http://stackoverflow.com/questions/1887891/what-is-the-reason-the-uikeyboardwillshownotification-called-once/1888253#1888253。同时,也可以参考此链接。 - Madhup Singh Yadav
3个回答

3
在我自认为是界面纳粹的角色中,我感到有必要指出UITextField和UITextView在外观上有所不同,以传达给用户期望稍微不同的功能。
在文本字段中,回车键将结束编辑。在文本视图中,它可能只会创建一个新行。在文本字段中,链接和电话号码不被识别。在文本视图中,它们会被识别。文本视图可以滚动等等...
除非你有强烈的理由这样做,否则你不应该创建非标准的界面元素。你应该问问自己,让文本视图看起来像文本字段能帮助用户理解他们需要采取哪些操作来使应用程序按照他们的期望和愿望工作吗?
令人惊讶的小调整可能会引起严重的用户混淆。非标准的界面可能会引入短暂的停顿,每次使用它时可能只有半秒钟。这种轻微的困惑可能会降低用户对应用程序效用的感知。

9
作为界面同盟军的一员,我自认为有责任指出iOS非常需要一个多行UITextField。没有它会让我们开发者不得不去寻找自己编写的解决方案。我认为这并不算违反标准,因为在HTML中,<input type='text' />和<textarea>都有非常类似的设计。 - The WebMacheter

1
您可以在textView上放置一个带有圆角边框的遮罩图像。UITextView的背景可以通过标准的setBackgroundColor消息更改。

1
感谢Timur 在这里,你可以使用这个聊天输入示例来实现一个多行uitextview,就像你在iPhone消息应用程序中看到的那样。
它帮助了我在我的应用程序中 :)
这是它的外观: chat input sample screenshot

我不理解的是,为什么我们需要从第三方找到“像消息应用程序一样工作”的东西,当显然苹果已经做到了这一点。为什么它不在SDK中呢?这应该很容易做到... - mtmurdock
这让我想到了在UITextView下方放置一个UITextField的主意。谢谢... - ATOzTOA

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接