自定义TextField的删除按钮

#import <UIKit/UIKit.h>

@interface CustomTextField : UITextField

@property(strong,nonatomic)NSString * alwaysShowStr;

@end

@interface CustomTextField ()

{

UIButton * _button;

}

@end

@implementation CustomTextField

- (id)initWithFrame:(CGRect)frame

{

self = [super initWithFrame:frame];

if (self) {

// Initialization code

}

return self;

}

- (void)drawRect:(CGRect)rect

{

// Drawing code

self.layer.borderWidth = 1.0;

self.layer.borderColor = [UIColor lightGrayColor].CGColor;

UIView * view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 5, 20)];

self.leftView = view;

self.leftViewMode = UITextFieldViewModeAlways;

_button = [UIButton buttonWithType:UIButtonTypeCustom];

_button.frame = CGRectMake(0, 0, 40, 40);

[_button addTarget:self action:@selector(deleteSelfText) forControlEvents:UIControlEventTouchUpInside];

[_button setImage:[UIImage imageNamed:@"delete.png"] forState:UIControlStateNormal];

_button.imageEdgeInsets = UIEdgeInsetsMake(13,18,13,8);

UIView * rightView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];

[rightView addSubview:_button];

self.rightView = rightView;

self.rightViewMode = UITextFieldViewModeAlways;

_button.hidden = YES;

[self addTarget:self action:@selector(textHadLength) forControlEvents:UIControlEventAllEvents];

}

-(void)deleteSelfText{

self.text = _alwaysShowStr;

if (!_alwaysShowStr) {

_button.hidden = YES;

}

}

-(void)textHadLength

{

if (self.text.length>=1) {

_button.hidden = NO;

}else{

_button.hidden = YES;

}

 if (!self.editing) {

_button.hidden = YES;

}

}

-(CGRect)rightViewRectForBounds:(CGRect)bounds

{

return CGRectMake(self.width-40, 0, 40, 40);

}

/*

// Only override drawRect: if you perform custom drawing.

// An empty implementation adversely affects performance during animation.

- (void)drawRect:(CGRect)rect

{

// Drawing code

}

*/

@end

自定义TextField的删除按钮

时间: 2024-10-05 12:41:03

自定义TextField的删除按钮的相关文章

自定义searchview的编辑框,搜索按钮,删除按钮,光标等

多说无益,直接上代码. <pre name="code" class="java"><span style="white-space:pre"> </span> Class<?> argClass=mSearchView.getClass(); //指定某个私有属性 Field mSearchHintIconField = argClass.getDeclaredField("mSearc

自定义tableViewCell的侧滑删除按钮

有时候客户会有一些特殊的要求,更改tableViewCell的侧滑删除按钮的样子就是其中之一,就像这样: 这个效果其实也不难,只需在自定义的cell里重写layoutSubviews方法就好,具体代码如下: //修改删除模式的样式 -(void)layoutSubviews { [super layoutSubviews]; for (UIView *subView in self.subviews) { if([subView isKindOfClass:NSClassFromString(@

自定义TextField清除按钮

当需要设置TextField的清除按钮的时候,系统的总是不满足需求,这就需要我们自定义了,代码如下: 1 // 2 // TextFieldDemoViewController.m 3 // OCDemo 4 // 5 // Created by 思 彭 on 16/12/14. 6 // Copyright ? 2016年 思 彭. All rights reserved. 7 // 8 9 #import "TextFieldDemoViewController.h" 10 11

黑暗料理一之修改UITableViewCell左滑删除按钮的样式和自定义

在日常开发中我们可能会遇到需要自定义UITableViewCell左滑删除按钮的样式,网上也有许多自定义的第三方,但是都太重量级了,应为我们可能我们的需求很小,也不想大动干戈的导入一个第三方,然后设置各种一大堆属性,太麻烦了,那么怎么来修改系统自带的呢? 可能你说不能修改,万是不是绝对的,我们有神器reveal,作为一名iOS程序猿,如果你连reveal都不知道或不会用的话你就太low了,OK,我们开始我们的黑暗料理. 首先我们来看reveal下UITableViewCell左滑按钮的层级关系,

自定义组件------带删除功能的EditText

以前在为EditText添加左侧图标,以及右侧一个删除按钮时,经常是使用FrameLayout,当这样代码复用差,维护也麻烦.最好的方法是重写EditText实现该功能.现在看看效果图,后面再讲解实现方式. 重写之后的组件有如下功能,只有当EditText内容不为空,而且获得焦点,才会出现删除按钮,点击删除按钮则清空内容.代码如下: public class CleanableEditText extends EditText { //回调函数 private TextWatcherCallBa

改变滑动删除按钮样式

在自定义 cell 中实现如下代码: // 改变滑动删除按钮样式 - (void)layoutSubviews { [super layoutSubviews]; for (UIView *subView in self.subviews){ if([subView isKindOfClass:NSClassFromString(@"UITableViewCellDeleteConfirmationView")]) { CGRect cRect = subView.frame; cRe

重写listview,横向滑动出现删除按钮,点击按钮删除item

首先看一下效果图: 接下来看具体操作: 准备一个删除按钮的布局,新建button.xml文件,代码如下所示: <?xml version="1.0" encoding="utf-8"?> <Button xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/btn" android:layout_width=&q

高仿微信实现左滑显示删除按钮功能

在实际项目中删除列表中的某一项是非常常见的功能,传统的做法可以使用长按监听器等,而现在流行的做法是左滑弹出删除按钮,微信,QQ等都是这么做的,下面做一个示例,代码如下: 主页面MainActivity:代码比较简单常规 package com.home.testslideview; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; im

Android学习小Demo(22)带删除按钮的TextView

很多时候,会有一些很简单的需求,比如你利用一个Button弹出某个页面,选择了某个对象之后,你会将对象的某些属性,比如名称之类,显示在按钮上. 而紧跟着,又会想着,能不能把刚选择的对象给清掉,比如把按钮上的文字给去掉,这个时候,你就会希望,要是按钮后面还能够有多一个图标,一点击,就把当前控件的文字等清除掉就好了,并且还会对应的回调函数,让我们多处理一些事情,那多好. 很可惜,Android并没有提供现成的控件供我们这样使用,但换个角度想想,这又根本不可惜,因为我们可以自己来实现这样的效果呀,这是