zoukankan      html  css  js  c++  java
  • 封装代理

    LTView.h

    @interface LTView : UIView 
    {
        UILabel *_lable;
        UITextField *_textField;
    }
    
    #pragma mark - 自己定义初始化方法
    - (instancetype)initWithFrame:(CGRect)frame
                             text:(NSString *)text
                      placeHolder:(NSString *)placeHolder
                         isSecure:(BOOL)isSecuer;
    
    
    #pragma mark - textField 的代理
    - (void)setTextFieldDelegate:(id<UITextFieldDelegate>)delegate;
    
    #pragma mark - 获取 textField
    - (UITextField *)getTextField;

    LTView.m

    @implementation LTView
    
    #pragma mark - 自己定义初始化方法
    - (instancetype)initWithFrame:(CGRect)frame
                             text:(NSString *)text
                      placeHolder:(NSString *)placeHolder
                         isSecure:(BOOL)isSecuer
    {
        self = [super initWithFrame:frame];
        if (self) {
            [self createLabel:text];
            [self createTextField:placeHolder isSecure:isSecuer];
        }
        return self;
    }
    
    
    - (void)createLabel:(NSString *)text
    {
        _lable = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, self.frame.size.width / 4, self.frame.size.height)];
        _lable.text = text;
        [self addSubview:_lable];
        [_lable release];
    }
    
    
    - (void)createTextField:(NSString *)placeHolder
                   isSecure:(BOOL)secure
    {
        _textField = [[UITextField alloc] initWithFrame:CGRectMake(CGRectGetMaxX(_lable.frame), 0, self.frame.size.width / 4 * 3, self.frame.size.height)];
        _textField.placeholder = placeHolder;
        _textField.secureTextEntry = secure;
        [self addSubview:_textField];
        [_textField release];
    }
    
    
    #pragma mark - textField 的代理
    - (void)setTextFieldDelegate:(id<UITextFieldDelegate>)delegate
    {
        _textField.delegate = delegate;
    }
    
    
    
    #pragma mark - 获取 textField
    - (UITextField *)getTextField
    {
        return _textField;
    }

    AppDelegate.h

    @class LTView;
    
    @interface AppDelegate : UIResponder <UIApplicationDelegate,UITextFieldDelegate>
    
    @property (strong, nonatomic) UIWindow *window;
    @property (nonatomic, retain) LTView *userName;
    @property (nonatomic, retain) LTView *userPWD;
    

    AppDelegate.m

    
    #pragma mark - 重写
    #pragma mark dealloc
    - (void)dealloc
    {
        [_window release];
        [_userName release];
        [_userPWD release];
    
        [super dealloc];
    }
    
    
    
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
        //设置window
        self.window = [[[UIWindow alloc] init] autorelease];
        self.window.frame = [UIScreen mainScreen].bounds;
        self.window.backgroundColor = [UIColor whiteColor];
        [self.window makeKeyAndVisible];
    
    
    
        self.userName = [[LTView alloc] initWithFrame:CGRectMake(30, 80, 260, 40) text:@"username" placeHolder:@"请输入username" isSecure:NO];
        [self.userName setTextFieldDelegate:self];
        [self.window addSubview:_userName];
        [_userName release];
    
    
    
        self.userPWD = [[LTView alloc] initWithFrame:CGRectMake(30, 140, 260, 40) text:@"password" placeHolder:@"请输入password" isSecure:YES];
        [self.userPWD setTextFieldDelegate:self];
        [self.window addSubview:_userPWD];
        [_userPWD release];
    
    
    
    
        // Override point for customization after application launch.
        return YES;
    }
    
    
    - (BOOL)textFieldShouldReturn:(UITextField *)textField
    {
        if (textField == [self.userName getTextField]) {
            [[self.userName getTextField] resignFirstResponder];
            [[self.userPWD getTextField] becomeFirstResponder];
        } else {
            [textField resignFirstResponder];
        }
        return YES;
    }
    
  • 相关阅读:
    在 Eclipse 中使用 JUnit4 进行单元测试
    版本控制之道使用Git
    程序员成熟的标志
    Java 编程需要注意的细节
    【netty】netty的websocketframe
    求一个数内含1个次数
    apache bench的使用
    更改centos epel源
    [linux]centos7下解决yum install mysqlserver没有可用包
    cacti的安装与配置
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/7061465.html
Copyright © 2011-2022 走看看