当前位置: 首页 > news >正文

ios开发之--textview意见反馈页面(占位label,字数统计,提交按钮的交互设置)...

记录一个页面的功能:

textview的占位符,字数统计,提交按钮的交互设置,具体效果图如下:

输入效果:

具体实现代码如下:

1,设置代理

@interface FKViewController ()<UITextViewDelegate>

2,我是直接xib拖拽的控件

@property (weak, nonatomic) IBOutlet UITextView *FKTextView;
@property (weak, nonatomic) IBOutlet UILabel *descLab;
@property (weak, nonatomic) IBOutlet UIButton *sendBtn;
@property (weak, nonatomic) IBOutlet UILabel *stringlenghtLab;

3,viewDidLoad里面

self.FKTextView.delegate = self;
    self.descLab.userInteractionEnabled = NO;
    self.sendBtn.userInteractionEnabled = NO;
    self.sendBtn.backgroundColor = [UIColor lightGrayColor];

4,具体代理方法实现

-(void)textViewDidChange:(UITextView *)textView
{
    self.descLab.hidden = YES;
    self.sendBtn.userInteractionEnabled = YES;
    self.sendBtn.backgroundColor = MainColor;
    //实时显示字数
    self.stringlenghtLab.text = [NSString stringWithFormat:@"%ld/100",(long)textView.text.length];
    
    //字数限制
    if (textView.text.length >= 100) {
        textView.text = [textView.text substringToIndex:100];
    }
    
    //取消按钮点击权限,并显示文字
    if (textView.text.length == 0) {
        self.descLab.hidden = NO;
        self.sendBtn.userInteractionEnabled = NO;
        self.sendBtn.backgroundColor = [UIColor lightGrayColor];
    }
}

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if ([text isEqualToString:@"\n"]) {
        
        [self.FKTextView resignFirstResponder];
        
        return NO;
    }
    
    return YES;
}

仅做记录!

转载于:https://www.cnblogs.com/hero11223/p/8006741.html

相关文章:

  • 谈谈转行
  • [Spark][Python]DataFrame中取出有限个记录的例子
  • ORM规范API通用格式及禁止联表查询方案实现ORM
  • swift基础学习(九)
  • MySQL Workbench关键字转成小写设置
  • iOS-关于autoresizingMask在7.x及以下版本的一个bug
  • XV Open Cup named after E.V. Pankratiev. GP of Three Capitals
  • View 和Activity生命周期
  • Swift 2 0 如何替代 pch
  • 使用阿里云Maven镜像的正确姿势
  • 高德地图系列web篇——目的地公交导航
  • iOS 错误提示 [NSTaggedPointerString countByEnumeratingWithState objects
  • Android Fragment 从源码的角度去解析(上)
  • 数据结构中的各种排序方法-JS实现
  • Asp.net缓存简介
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • [nginx文档翻译系列] 控制nginx
  • __proto__ 和 prototype的关系
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • C++类的相互关联
  • Druid 在有赞的实践
  • IndexedDB
  • Java程序员幽默爆笑锦集
  • Java到底能干嘛?
  • js ES6 求数组的交集,并集,还有差集
  • Python语法速览与机器学习开发环境搭建
  • spring学习第二天
  • vue-cli3搭建项目
  • 基于游标的分页接口实现
  • 解决iview多表头动态更改列元素发生的错误
  • 如何设计一个比特币钱包服务
  • 详解NodeJs流之一
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​2021半年盘点,不想你错过的重磅新书
  • ​业务双活的数据切换思路设计(下)
  • # 透过事物看本质的能力怎么培养?
  • $refs 、$nextTic、动态组件、name的使用
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (区间dp) (经典例题) 石子合并
  • (五)网络优化与超参数选择--九五小庞
  • (转)http协议
  • .NET微信公众号开发-2.0创建自定义菜单
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...
  • [ 数据结构 - C++] AVL树原理及实现
  • [20170705]diff比较执行结果的内容.txt
  • [AIGC] 使用Curl进行网络请求的常见用法
  • [AutoSar]工程中的cpuload陷阱(三)测试
  • [BT]BUUCTF刷题第8天(3.26)
  • [BZOJ3223]文艺平衡树
  • [C++进阶篇]STL中vector的使用
  • [CISCN 2023 初赛]go_session