我的 iOS 应用程序有一个包含十几个字段的表单,我想在键盘上方添加“上一个”/“下一个”按钮,以帮助用户在字段之间移动。我有这样的事情:
for (UITextField *t in _textfields) {
t.delegate = self;
UIToolbar *toolbar = [[UIToolbar alloc] init];
[toolbar setBarStyle:UIBarStyleBlackTranslucent];
UISegmentedControl *segControl = [[UISegmentedControl alloc] initWithItems:@[@"Previous", @"Next"]];
[segControl addTarget:self action:@selector(switchTextField:) forControlEvents:UIControlEventValueChanged];
segControl.segmentedControlStyle = UISegmentedControlStyleBar;
segControl.tag = [_textfields indexOfObject:t];
if (segControl.tag == 0) [segControl setEnabled:NO forSegmentAtIndex:0];
else if (segControl.tag == [_textfields count] - 1) [segControl setEnabled:NO forSegmentAtIndex:1];
[segControl sizeToFit];
UIBarButtonItem *segItem = [[UIBarButtonItem alloc] initWithCustomView:segControl];
UIBarButtonItem *flexButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
UIBarButtonItem *doneButton =[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self.view action:@selector(endEditing:)];
[toolbar setItems:@[segItem, flexButton, doneButton]];
[toolbar sizeToFit];
[t setInputAccessoryView:toolbar];
}
我遇到的问题是,每隔一段时间就有一个部分停止工作。该方法switchTextField
只是没有被调用,按钮看起来很正常,没有被禁用,但是触摸没有注册。有时是“上一个”按钮,有时是“下一个”按钮,绝不会同时出现,有时它们都可以正常工作。一旦其中一个按钮卡住,(暂时)修复它的唯一方法是在不使用工具栏的情况下点击另一个文本字段或关闭键盘并重新开始编辑。可能是什么问题呢?