zoukankan      html  css  js  c++  java
  • 带placeHolder 的textView

    #import <UIKit/UIKit.h>

    @interface CXTextView : UITextView

    @property (strong, nonatomic) NSString *placeHolder;

    @property (strong, nonatomic) UIColor *placeHolderColor;

    @end

    #import "CXTextView.h"

    @interface CXTextView ()

    @property (nonatomic, assign)BOOL isEdit;

    @end

    @implementation CXTextView

    - (id)initWithFrame:(CGRect)frame

    {

        self = [super initWithFrame:frame];

        if (self) {

            // Initialization code

        }

        return self;

    }

    - (void)setPlaceHolder:(NSString *)placeHolder

    {

        _placeHolder = placeHolder;

        [self setNeedsDisplay];

    }

    - (void)setPlaceHolderColor:(UIColor *)placeHolderColor

    {

        _placeHolderColor = placeHolderColor;

        [self setNeedsDisplay];

    }

    - (BOOL)becomeFirstResponder

    {

        BOOL fist = [super becomeFirstResponder];

        if (fist) {

            self.isEdit = YES;

            [self setNeedsDisplay];

        }

        return fist;

    }

    - (BOOL)resignFirstResponder

    {

        BOOL resign = [super resignFirstResponder];

        if (resign) {

            self.isEdit = NO;

            [self setNeedsDisplay];

        }

        return resign;

    }

    - (void)drawRect:(CGRect)rect

    {

        if (_placeHolder && [self.text length] == 0 && !self.isEdit) {

            if (!_placeHolderColor) {

                [_placeHolderColor set];

            }else {

                [[UIColor grayColor] set];

            }

            UIFont *font = self.font;

            if (!font) font = [UIFont systemFontOfSize:17.f];

            [_placeHolder drawAtPoint:CGPointMake(5, 5) forWidth:rect.size.width withFont:font lineBreakMode:NSLineBreakByTruncatingTail];

        }

        [self.textColor set];

        [super drawRect:rect];

    }

    /*

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

    // An empty implementation adversely affects performance during animation.

    - (void)drawRect:(CGRect)rect

    {

        // Drawing code

    }

    */

    @end

  • 相关阅读:
    VirtualXposed查看手机端网页及调试
    vue小toast插件报错runtine-only
    vuex的一个坑
    安卓4.4.4以下手机的兼容性问题
    WebForm(一)——IIS服务器、开发方式和简单基础
    winform窗体(六)——DataGridView控件及通过此控件中实现增删改查
    winform窗体(五)——布局方式
    winform(四)——简单计算器制作
    winform(三)——更换主窗体例子
    winform窗体(二)——控件
  • 原文地址:https://www.cnblogs.com/ldc529/p/3831125.html
Copyright © 2011-2022 走看看