iOS-两个textField之间的动态获取

2018-07-16  本文已影响0人  HeavensLife

        今天在做一个图表查询的界面,因为要做两个带PickerView的textField,所以只好新建了两个继承了UITextField的class,但还是不清楚有什么方法能够从textField1.m中获取到另外一个textField2.m的值,而且也不知道有没有在UITextField中的点击触发方法(不是textFieldDidBeginEditing:(UITextField *)textField这个方法,因为这个方法是在UIViewController中调用的,就算触发也不清楚有什么办法能将请求的值传到textField2.m中),所以自己想了一些障眼法和一些思路。

1.两个textField之间的传值

实现:在controller下调用(textField1 == _Search1Field, textField == _Search2Field,以下都是,不在赘述)目的:在textfield1中的值传到textField2中,并且textField2.m中可以根据textField1的值发送请求

-(void)textFieldDidBeginEditing:(UITextField*)textField

{

    // [_SecField resignFirstResponder];

    if(textField ==_Search2Field) {

        _Search2Field.text = _Search1Field.text; //将1的值赋值给2

        _Search2Field.textColor = [UIColor whiteColor]; //并且将2中的文字设为背景色,这里是白色

        NSLog(@"%@",_Search2Field.text);

    }elseif(textField ==_Search1Field) {

        _Search2Field.text = @"";

    }

}

然后就可以在2.m的文件中通过self.text获得到textField1中的值。

2.在textField2中,根据获取到的textField1的值发送请求

目的:能够根据textField1的值,得到相应的值,并展示在Pickerview中

        目前没有什么正确的方法去解决,我的做法是在textField2.m的-(void)setUp()方法中直接发送全部内容的请求,然后在数据源方法中,根据获得的值进行判断,然后将请求到的值根据判断的结果,存到定义好的数组中,就可以直接显示在pickerView中了。

代码如下:

-(void)setUp

{

    //创建pickerView

    UIPickerView*pickerView = [[UIPickerViewalloc]init];

    pickerView.dataSource=self;

    pickerView.delegate=self;

    [pickerViewsetBackgroundColor:[UIColor whiteColor]];

    //自定义文本框键盘

    self.inputView= pickerView;

    [self fakeAsync];

}

#pragma mark - 数据源方法

//PickerView  1列

-(NSInteger) numberOfComponentsInPickerView:(UIPickerView*)pickerView

{

    return 1;

}

//第0列  描述搜索类型  行数

-(NSInteger)pickerView:(UIPickerView*)pickerView numberOfRowsInComponent:(NSInteger)component

{

    _Section = _dataDict[@"request"][self.text];

    return _Section.count;

}

PS:一些不熟练开发而想的小技巧,欢迎指正🙏🙏🙏

上一篇 下一篇

猜你喜欢

热点阅读