多行文本字段(类似短信)和/或UITextView中的“完成”按钮。

14 浏览
0 Comments

多行文本字段(类似短信)和/或UITextView中的“完成”按钮。

我已经研究了几天,希望能得到一点帮助。有没有办法生成一个像苹果在短信应用中使用的多行UITextField?这个控件的有用之处在于它有一个“下沉”的外观,清楚地表明它是一个文本输入框,但同时,它在每个换行字符后都会扩展。

如果无法实现这个,如果我被迫使用UITextView,有人能告诉我如何最好地关闭键盘吗?无论是“完成”按钮还是“前往”按钮似乎都只会生成换行字符('\n')。这对我来说似乎是错误的 - 至少其中一个应该生成一个不同的字符,这样我仍然可以允许换行字符,但也可以在按下特定键时关闭键盘。

我在这里是否漏掉了一些简单的东西?

提前谢谢 🙂

0
0 Comments

Facebook发布了一个名为Three20的开源软件包,其中包含一个多行文本字段。您可以很容易地使用这个软件包来创建一个可扩展的文本字段。

至于“完成”按钮,您可以将视图控制器设置为UITextFieldDelegate。然后使用下面的方法:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {

// 做你想要的完成按钮的操作

return YES;

}

在使用Three20时,可以使用TTTextEditorDelegate的下面方法:

- (BOOL)textFieldShouldReturn:(TTTextEditor *)textField {

// 做你想要的完成按钮的操作

return YES;

}

然而,UITextView没有textViewShouldReturn方法,即使它被设置为UITextViewDelegate也无效。此外,由于Three20使用了私有API,有报道称有多个应用程序因此被应用商店拒绝,所以我不愿意使用Three20。

关于私有API的引用,在Three20中早已被移除(请参阅2009年11月17日的更改列表)。正如我在去年12月的iPhone Tech Talk World Tour上所解释的那样,您最终不使用的代码会被从发布的二进制代码中剥离掉。请参阅Xcode Build System Guide中的“Dead Code Stripping”(iPhone OS参考库的一部分)。

0
0 Comments

在开发过程中,我们可能会遇到需要在iOS应用中使用多行文本输入框(类似短信输入框)以及一个“完成”按钮的需求。下面是一个解决这个问题的方法。

通过查看上述链接,可以找到一个可以用来构建多行文本输入框的类。这个类是基于UITextView的,但没有UITextView自带的一些问题。可以通过访问链接来获取完整的代码和使用说明。

解决方法:

1. 首先,访问链接http://www.hanspinckaers.com/multi-line-uitextview-similar-to-sms,获取完整的代码和使用说明。

2. 将相关代码添加到项目中。

3. 创建一个UITextView对象,并将其类设置为Multi-line TextField类。

4. 现在,你可以在应用中使用这个Multi-line TextField类,它将提供与短信输入框类似的功能。

5. 如果需要添加一个“完成”按钮,可以将这个按钮添加到视图中,并在按钮的点击事件中调用resignFirstResponder方法来隐藏键盘。

通过以上步骤,我们可以解决在iOS应用中使用多行文本输入框以及一个“完成”按钮的需求。这个方法可以帮助我们创建一个类似短信输入框的功能,并且避免了UITextView自带的一些问题。

0
0 Comments

问题的出现原因:缺少一个多行文本框和/或在UITextView中添加“完成”按钮的功能。解决方法:按照提供的代码示例进行初始化和填充UITextView的委托方法,并使用adjustTextInputHeightForText方法来调整文本输入区域的高度。

0