`
zjjzmw1
  • 浏览: 1366979 次
  • 性别: Icon_minigender_1
  • 来自: 开封
社区版块
存档分类
最新评论

关于UITextView的textViewDidChange回调没有调用的问题解决

    博客分类:
  • iOS
阅读更多

 

原文:http://www.cnblogs.com/Peterahan/archive/2013/04/17/3026130.html

 

 

最近在做一个需求的时候,出现了这样一个问题:textViewDidChange当程序中给UITextView赋值的时候,是不被调用的,如官方文档对该方法的说明:

Tells the delegate that the text or attributes in the specified text view were changed by the user.
The text view calls this method in response to user-initiated changes to the text. This method is not called in response to programmatically initiated changes.

如果必要在程序中给UITextView赋值又希望有相应的动作的话,我采用了一个替代方案:

1.在合适的地方注册一个系统的通知(注意name,系统定义的):

       [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChangedExt:) name:UITextViewTextDidChangeNotification object:nil];

2.实现textChangedExt:

- (void)textChangedExt:(NSNotification *)notification

{

 //todo sth...

}

 

 

 

用下面这个代理方法也可以。。。

#pragma mark - UITextField Delegate

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

{

    if ([string isEqualToString:@""]) {

        return YES;

    }

    if ([[textField.text stringByReplacingOccurrencesOfString:@" " withString:@""] length] >= 20) {

        return NO;

    }

    return YES;

}

 

 

 

 

 

分享到:
评论

相关推荐

    UITextView

    在本篇文章中,我们将深入探讨`UITextView`的使用方法、属性配置、事件响应以及常见问题解决。 ### 一、初始化与基本设置 `UITextView`的初始化可以通过代码或Storyboard完成。在代码中,你可以使用如下的方式创建...

    UITextView 实现UITextField功能

    - 虽然`UITextView`没有内置的输入限制,但可以通过监听`textDidChange`通知,自定义实现输入字符数的限制。 ```swift func setupInputLimit(maxLength: Int) { NotificationCenter.default.addObserver(self, ...

    自适应UITextView和键盘位置对应的Demo

    为了解决这个问题,开发者通常需要实现一个自适应的`UITextView`,使其能够根据键盘的出现和消失动态调整自己的位置。本Demo就是针对这一问题的一个解决方案,主要涉及`UITextView`和键盘交互的相关知识点。 首先,...

    UITextView+placeholder

    `UITextView+placeholder` 是一个解决方案,它通过 Category 的方式扩展了`UITextView`,为这个控件添加了占位符功能,使得开发者只需一行代码就能为`UITextView`设置占位符。 在`UITextView+placeholder.h` 文件中...

    UITextView:定制选中文字菜单和选择文字

    在这个回调中,我们可以获取当前选中的文本范围,并进行相应的操作,如高亮显示选中的文字,或者更新自定义菜单的选项。 在`MyTextView.swift`文件中,可以看到如何实现这些功能的代码示例。文件中可能会定义一个...

    带palceholder的UITextView

    带有palceholder的UITextView,只需引入LYTextView,然后进行调用即可,可以纯代码引入,也可以在XIB中引入,Demo中都有实例。 可以设定palceholder的4个参数,文字,字体,颜色,高度 改代码也可以自己修改满足自己...

    UITextView限制字数封装

    在iOS开发中,`UITextView` 是一个常用的用于显示和编辑多行文本的视图,但默认情况下,它并未提供直接限制用户输入字数的功能。为了实现这一需求,开发者需要自定义并封装一个功能,使得`UITextView`可以根据设定的...

    可以输入默认Place提示的UITextView

    然而,原生的`UITextView`并没有内置的placeholder功能,即默认的提示文本,这对于用户交互和界面设计来说是一个不便之处。为了解决这个问题,开发者通常会进行自定义封装,使其具有类似`UITextField`的placeholder...

    swift-一行代码解决UITextFiled和UITextView限制字数和输入特殊字符

    在实际项目中,我们可以根据需要在初始化UITextField或UITextView后调用`limitInput`方法,这样就为每个实例设定了输入限制。例如: ```swift let textField = UITextField() textField.limitInput(20) // 限制输入...

    UITextView.xcodeproj.zip_xcode UITextView

    - `textViewDidChange(_:)`: 文本改变时调用,可以在这里实现字符限制或格式化等需求。 - `textViewShouldEndEditing(_:)`: 用户尝试结束编辑时调用,返回值决定是否允许结束。 4. **输入限制**: 可以通过`...

    UITextView实现富文本编辑

    使用UITextView来实现富文本编辑,实现:添加标题、加粗、斜体、下划线、删除线、图片等功能。UITextView富文本编辑主要通过NSMutableAttributedString和NSAttributedString进行属性设置,主要是计算好NSRange参数...

    UITextView 设置行高 UILable 行高

    UITextView 和UILable 它本身是没有控制行高的。很多人说用Uiwebview,但我觉得那不好用,要用html布局麻烦,占内存。也有人说drawatpoint,但 发现画中文的时候也很占内存,我就投机取巧一下吧

    swift-UITextView的封装可以自定义placeholder

    在Swift开发中,UI设计是不可或缺的一部分,而`UITextView`是用于展示和编辑多行文本的常见控件。在实际应用中,我们往往需要对其进行一些定制化处理以满足特定需求。标题“swift-UITextView的封装可以自定义...

    swift-Blockskit没有UITextView的拓展

    在Swift中,BlocksKit是一个流行的库,它为Objective-C中的blocks语法提供了Swift版本的实现,使得开发者可以更方便地处理回调和闭包。然而,原生的BlocksKit库并没有提供对`UITextView`的直接支持。`UITextView`是...

    UITextView+Placeholder.zip

    FOUNDATION_EXPORT double UITextView_PlaceholderVersionNumber; FOUNDATION_EXPORT const unsigned char UITextView_PlaceholderVersionString[]; @interface UITextView (Placeholder) /* 占位文字 */ @...

    ios-UITextView封装自定义超级简单提示语.zip

    该压缩包中的`UITextViewPlaceholder`文件,就是为了解决这个问题,它提供了类似`UITextField`的占位符效果,即在用户未输入文本时显示一条提示信息,输入文本后自动消失。 这个封装主要包含以下几个关键知识点: ...

    uitextview

    func textViewDidChange(_ textView: UITextView) { // 文本改变时执行的代码 } ``` 5. **限制输入长度** 通过`textView.text`的修改,可以在用户输入时检查文本长度并进行限制。 6. **禁用选择和复制粘贴** ...

    UITextView增加PlaceHolder

    在iOS开发中,`UITextView` 是一个常用的组件,用于显示多行文本输入或阅读。在许多场景下,我们希望给 `UITextView` 添加类似 `UITextField` 的占位符(placeholder)功能,来提示用户输入内容。标题 "UITextView...

    UItextField和UItextView自动移动

    为了解决这个问题,开发者通常需要实现一个功能,使得这些控件能够随着键盘的升起而自动上移,确保输入框始终可见。这个过程涉及到对UIResponder、NSNotificationCenter和Auto Layout的深入理解。 首先,我们需要...

Global site tag (gtag.js) - Google Analytics