Swift3 重写一个带占位符的textView
class PlaceStrTextView: UIView,UITextViewDelegate{
var palceStr = "即将输入的信息" //站位文字
var inputStr = "" //输入的信息
//创建一个textView
lazy var textView:UITextView = {
let tv = UITextView()
tv.delegate = self
tv.text = self.palceStr
tv.textColor = UIColor.gray
tv.backgroundColor = UIColor.clear
tv.font = UIFont.systemFont(ofSize: 15)
return tv
}()
//私有方法
func overrideSelf(frame: CGRect) {
self.frame = frame
addTextView()
}
//添加textView
func addTextView(){
self.textView.frame = CGRect(x: 0, y: 0, width: self.frame.width, height: self.frame.height)
self.addSubview(self.textView)
}
func textViewDidBeginEditing(_ textView: UITextView) {
if textView.text == palceStr { //一旦开始编辑就将textView滞空并将颜色改为黑色
textView.text = ""
}
textView.textColor = UIColor.black
}
func textViewDidEndEditing(_ textView: UITextView) {
if textView.text == "" {//如果用户没有输入任何信息就显示站位字符串
textView.text = palceStr
textView.textColor = UIColor.gray
}else{//一旦输入了信息你则颜色变成黑色
textView.textColor = UIColor.black
}
}
func hiddenKeyBoard(){
(UIApplication.shared.delegate as! AppDelegate).window?.endEditing(true)
inputStr = textView.text
}
}
//调用示例
@IBOutlet weak var textView: PlaceStrTextView! override func viewDidLoad() {
super.viewDidLoad() // Do any additional setup after loading the view.
textView.palceStr = "埃及的妇女节阿萨德来看风景安东尼设计开发"
textView.overrideSelf(frame: textView.frame)
} override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
} @IBAction func tapAction(_ sender: Any) {
textView.hiddenKeyBoard()
print(textView.inputStr)
}
Swift3 重写一个带占位符的textView的更多相关文章
- 在Java中编写带占位符的SQL语句
C#中SQL中带占位符的语句 假设有一张学员信息表Student,通过表中的ID来找学员,查询的SQL语句如下 string sql = string.Format("select * fr ...
- WPF带占位符的TextBox
简介 效果图如下: 使用的XAML代码如下: <Window x:Class="PlaceHolderTextBox.MainWindow" xmlns="http ...
- SpringMVC(七) RequestMapping 路径中带占位符的URL
使用方法:在@RequestMapping("/delete/{id}")中,通过{id}带入pathvariable,然后在方法中,通过@PathVariable("变 ...
- 简易封装一个带有占位文字的TextView
在实际iOS应用开发中我们经常会用到类似于下图所示的界面,即带有占位文字的文本框:
- 用mysql写带占位符的select语句
sql.append(" AND t.f_user_name LIKE CONCAT('%',?,'%')");//模糊查询 sql.append(" AND t.f_u ...
- SpringBoot环境属性占位符解析和类型转换
前提 前面写过一篇关于Environment属性加载的源码分析和扩展,里面提到属性的占位符解析和类型转换是相对复杂的,这篇文章就是要分析和解读这两个复杂的问题.关于这两个问题,选用一个比较复杂的参数处 ...
- java使用poi操作word, 支持动态的行(一个占位符插入多条)和表格中动态行, 支持图片
依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifa ...
- 【SpringMVC】SpringMVC系列3之@PathVariable映射URL占位符参数
3.@PathVariable映射URL占位符参数 3.1.概述 带占位符的 URL 是 Spring3.0 新增的功能,该功能在SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义. ...
- spring源码解析(一)---占位符解析替换
一.结构类图 ①.PropertyResolver : Environment的顶层接口,主要提供属性检索和解析带占位符的文本.bean.xml配置中的所有占位符例如${}都由它解析 ②.Config ...
随机推荐
- 错误:在非结构或联合中请求成员‘next’
#include <stdio.h> #include <stdlib.h> #define ElemType int #define Status int #define O ...
- BZOJ 2733 [HNOI2012]永无乡 - 启发式合并主席树
Description 1: 查询一个集合内的K大值 2: 合并两个集合 Solution 启发式合并主席树板子 Code #include<cstdio> #include<cst ...
- Python之socket编程进阶版
1.socket之简单的ssh功能 2.socket之简单的ftp服务器 3.socketserver的用法 4.socketserver的多并发的实现 1.socket实现ssh服务 1.1我们现在 ...
- 20180613更新 leetcode刷题
最近就是忙工作项目 工作间隙就刷了刷LEETCODE 所以没啥更新 // 1111111.cpp: 定义控制台应用程序的入口点. // #include "stdafx.h" #i ...
- 使用JavaScript实现表现和数据分离
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="utf-8&quo ...
- vs2008 安装部署 启动项
具体操作办法如下: 鼠标右键安装项目->视图->注册表 依次创建键: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion ...
- openssl AES加密
此代码不涉及ECB和CBC等关联加密 #include <stdio.h> #include <string.h> #include <stdlib.h> #inc ...
- SpringMVC学习笔记:单例与并发问题
Spring中的Bean默认都是单例(singleton),Spring中Bean的scope属性有五种类型: singleton 表示在spring容器中的单例,通过spring容器获得该bean时 ...
- 记录一次JVM调优【GC日志的分析】
首先查看服务器版本默认信息: 修改tomcat/bin/catalina.sh,在最顶端加入JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails -Xloggc ...
- css进阶篇
一.css的属性值 1)字体属性 font-size: 5px; /* 字体大小 */ font-size: 20px/50%/larger /* 字体的大小 */ font-family:'Luci ...