gpt4 book ai didi

ios - 文本字段崩溃成为使用 pickerview 的第一响应者

转载 作者:行者123 更新时间:2023-12-02 10:29:14 24 4
gpt4 key购买 nike

所以我一直在尝试让这个pickerview 工作,但我就是无法让它工作。当我运行该应用程序时,它崩溃了,没有任何堆栈跟踪,并在 [textField comeFirstResponder] 上显示线程 1:EXC_BAD_ACCESS。 pickerArray 是正确的,所以这不是问题。

#import "TestViewController.h"
#import "FindClasses.h"

@interface TestViewController ()
@property UIPickerView *picker;
@property NSArray *pickerArray;
@property (nonatomic, strong) FindClasses *finder;
@end

@implementation TestViewController

@synthesize finder = _finder;

- (FindClasses *)finder
{
if (!_finder) _finder = [[FindClasses alloc] init];
return _finder;
}

- (void)viewDidLoad {
[super viewDidLoad];

self.pickerArray = [self.finder findClassesInTimetable];

self.classField.delegate = self;
self.picker = [[UIPickerView alloc] init];
self.picker.delegate = self;
self.picker.dataSource = self;
self.classField.inputView = self.picker;
// Do any additional setup after loading the view.
}

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
[textField becomeFirstResponder];
return YES;
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
return YES;
}

- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

#pragma mark - UIPickerView method implementation

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 1;
}


-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
return self.pickerArray.count;
}


-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
return [self.pickerArray objectAtIndex:row];
}

谢谢。

最佳答案

尝试从以下方法中删除 [textFieldBecomeFirstResponder];:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField  {
[textField becomeFirstResponder];
return YES;
}

该错误与选择器字段无关。当选择文本字段时,会自动调用 becomeFirstResponder。因此不需要在这里调用它,因为当您单击文本字段时它已经被调用了。

基本上,您告诉处于事件状态的文本字段变得事件...尝试一下,让我知道结果是什么。

<小时/>

对于未显示的选取器 View ,如果使用 Storyboard,请确保 IBOutlet 连接正确,同时编辑 .m 文件顶部的以下内容,使其如下所示:

之前:

@interface TestViewController ()

之后:

@interface TestViewController () <UIPickerViewDataSource, UIPickerViewDataSource>

关于ios - 文本字段崩溃成为使用 pickerview 的第一响应者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25360799/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com