//UITextFieldDelegate
代理里面响应
return
键的回调
:textFieldShouldReturn:
。
//
但是
UITextView
的代理
UITextViewDelegate
里面并没有这样的回调。
//
但是有别的方法可以实现:
//UITextViewDelegate
里面有这样一个代理函数:
- (
BOOL
)textView:(
UITextView
*)textView shouldChangeTextInRange:(
NSRange
)range replacementText:(
NSString
*)text;
实现方法如下:
- (
BOOL
)textView:(
UITextView
*)textView shouldChangeTextInRange:(
NSRange
)range replacementText:(
NSString
*)text{
if
([text
isEqualToString
:
@"\n"
]){
//
判断输入的字是否是回车,即按下
return
//
在这里做你响应
return
键的代码
return
NO
;
//
这里返回
NO
,就代表
return
键值失效,即页面上按下
return
,不会出现换行,如果为
yes
,则输入页面会换行
return
YES
;
//UITextFieldDelegate代理里面响应return键的回调:textFieldShouldReturn:。//但是 UITextView的代理UITextViewDelegate里面并没有这样的回调。//但是有别的方法可以实现://UITextViewDelegate里面有这样一个代理函数:- (BOOL)textView:(UITextView
- (CX
TextView
*)
textView
{
if (!_
textView
) {
_
textView
= [[CX
TextView
alloc ] initWithFrame: CGRectMake ( 0 , 0 , self .width, 100 )];
_
textView
. initiLine = 2 ;
_
textView
. maxLine = 4 ;
_
textView
. v_margin = 10 ;
_
textView
. h_margin = 15 ;
_
textView
. maxLength = 500 ;
_textVi
最近遇到一个需求是要求,做一个
不换行
的输入框,文字都在一行显示,并且随着文字的增加会自动向右滚动,但由于某些原因 我需要使用
UITextView
来做这件事情,但
UITextView
本身是继承自UIScrollView ,在某些对text的操控上不如UITextField用起来方便。
网上查了一下 大部分方案都是设置contentSize 还有
UITextView
的size ,
I need to indicated a 'new line' in a string in an XML file I'm loading.
If I hard code the string:
my
TextView
.text =[NSString stringWithS
之前在做
UITextView
动态改变高度的一个类似于微信输入框的demo,网上找了好多资料都没法解决,无奈只有上Github搜索,找到了大神弄的一个自定义第三方
UITextView
框架:Growing
TextView
网址:https://github.com/HansPinckaers/Growing
TextView
,但是我弄完放到自己demo中之后,把
return
之后消息能够发送,发送
OC实现代码,UITableViewCell 中添加YYLabel,YYLabel富文本NSMutableAttributedString 中的attachment 里面插入
UITextView
,
UITextView
高度固定,内容可滚动。并且需要处理
UITextView
与TableView滚动冲突
首先,您需要将 YYLabel 添加到 UITableViewCell 中。 您可以通过在 UITableViewCell 子类中创建 YYLabel 实例并将其添加到 contentView 中来完成此操作。 您可以使用自动布局或手动布局将 YYLabel 放置在所需的位置上。
接下来,您需要创建 NSMutableAttributedString,其中包含
UITextView
和其他文本。 然后,您可以使用 NSMutableAttributedString 的 insert 方法将
UITextView
作为附件添加到文本中。 以下是一个示例代码片段:
```swift
let
textView
=
UITextView
(frame: CGRect(x: 0, y: 0, width: 100, height: 50))
textView
.text = "This is a
UITextView
"
let attachment = NSTextAttachment()
attachment.bounds = CGRect(x: 0, y: 0, width: 100, height: 50)
attachment.setAttachmentContent(
textView
)
let attributedString = NSMutableAttributedString(string: "This is a YYLabel with a
UITextView
attachment")
attributedString.insert(NSAttributedString(attachment: attachment), at: 21)
yyLabel.attributedText = attributedString
最后,您需要处理
UITextView
和 UITableView 之间的交互。您需要将
UITextView
的 isEditable 属性设置为 false,以防止用户编辑文本。您还需要在 UITableViewDelegate 中实现 heightForRowAt 和 estimatedHeightForRowAt 方法来动态计算 UITableViewCell 的高度,以适应包含
UITextView
的 YYLabel。
以下是一个示例 UITableViewDelegate 实现:
```swift
class MyTableViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
tableView.register(MyTableViewCell.self, forCellReuseIdentifier: "cell")
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! MyTableViewCell
// Configure the cell...
return
cell
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! MyTableViewCell
cell.configure(with: "This is a YYLabel with a
UITextView
attachment")
return
cell.systemLayoutSizeFitting(CGSize(width: tableView.frame.width, height: UIView.layoutFittingCompressedSize.height)).height
override func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
return
UITableView.automaticDimension
请注意,此示例实现了一个名为 MyTableViewCell 的 UITableViewCell 子类,该子类包含一个名为 yyLabel 的 YYLabel 实例。 该子类还实现了一个名为 configure(with:) 的方法,该方法接受一个字符串参数,并在 YYLabel 中设置带有
UITextView
附件的 NSMutableAttributedString。