• IOS控件:长度单位换算(UITextField,IBAction,委托事件touchesBegan)


    #import <UIKit/UIKit.h>
    
    @interface demo7_dayViewController : UIViewController {
        IBOutlet UITextField *chi;     //
        IBOutlet UITextField *meter;   //
        IBOutlet UITextField *feet;    // 英尺
    }
    
    // 此处 对每个文本框声明程序属性
    @property (nonatomic, retain) UITextField *chi;
    @property (nonatomic, retain) UITextField *meter;
    @property (nonatomic, retain) UITextField *feet;
    
    -(IBAction)reset;
    
    @end
    #import "demo7_dayViewController.h"
    
    @interface demo7_dayViewController ()
    
    @end
    
    @implementation demo7_dayViewController
    
    // 本指令告诉编译器去合成所需的“文本框”控件的存储器方法
    @synthesize chi, feet, meter;
    
    // 构建重置文本框的长度单位数值的按钮方法
    -(IBAction)reset {
        chi.text = @"3.0003";   //
        meter.text = @"1";      //
        feet.text = @"3.2808";  // 英尺
    }
    
    // 捕获手指的触摸事件方法,触摸开始时会调用touchesBegan
    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
        // 建立视图触摸“touch”对象定制所有事件中的任何触摸对象
        UITouch *touch = [[event allTouches] anyObject];
        // 当手指在屏幕的触摸次数>=1次
        if (touch.tapCount > 1) {
            // 隐藏文本框输入时的键盘
            [chi resignFirstResponder];
            [meter resignFirstResponder];
            [feet resignFirstResponder];
        }
    }
    
    // 当点击return返回键时,键盘自动隐藏,返回单位转换计算结果
    -(BOOL)textFieldShouldReturn:(UITextField*)textField {
        if (textField == chi) {
            [chi resignFirstResponder];
            // 建立浮点变量,计算后转换成“米”
            double m = [chi.text doubleValue]/3.003;
            // 建立浮点变量,计算后转换成“英尺”
            double f = m * 3.2808;
            
            // 把字符类型字符按固定格式定制给对象,"%.4f"的位置将显示小数点后4位浮点变量。
            meter.text = [[NSString alloc]initWithFormat:@"%.4f", m];
            feet.text = [[NSString alloc]initWithFormat:@"%.4f", f];
            
        }
        if (textField == meter) {
            [meter resignFirstResponder];
            double c = [meter.text doubleValue] * 3.003;
            double f = [meter.text doubleValue] * 3.2808;
            chi.text = [[NSString alloc]initWithFormat:@"%.4f", c];
            feet.text = [[NSString alloc]initWithFormat:@"%.4f", f];
        }
        if (textField == feet) {
            [feet resignFirstResponder];
            double m = [feet.text doubleValue]/3.2808;
            double c = m * 3.003;
            meter.text = [[NSString alloc]initWithFormat:@"%.4f", m];
            chi.text = [[NSString alloc]initWithFormat:@"%.4f", c];
        }
        
        return YES;
    }
    
    //- (void)viewDidLoad
    //{
    //    [super viewDidLoad];
    //    // Do any additional setup after loading the view, typically from a nib.
    //}
    
    // 释放可用内存供给应用程序,并提早发出警告提示
    - (void)didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    // 执行内存清理工作
    -(void)dealloc{
        [chi release];
        [meter release];
        [feet release];
        [super dealloc];
    }
    
    @end

  • 相关阅读:
    bzoj1857: [Scoi2010]传送带
    积分:变步长梯形法
    《java并发编程实战》读书笔记7--线程池的使用
    《java并发编程实战》读书笔记6--取消与关闭
    jpa缓存导致无法查询到更新后的数据&android出现ANR的一个解决办法
    《java并发编程实战》读书笔记5--任务执行, Executor框架
    《java并发编程实战》读书笔记4--基础构建模块,java中的同步容器类&并发容器类&同步工具类,消费者模式
    《java并发编程实战》读书笔记3--对象的组合
    转载---HttpUrlConnection发送post请求汉字出现乱码的一个解决方法及其原因
    《java并发编程实战》读书笔记2--对象的共享,可见性,安全发布,线程封闭,不变性
  • 原文地址:https://www.cnblogs.com/androidsj/p/3279352.html
Copyright © 2020-2023  润新知