【发布时间】:2012-06-06 23:38:22
【问题描述】:
我正在尝试为一系列UITextFields 实现“上一个”、“下一个”和“完成”按钮,每个按钮都包含在一个分组UITableView 中的UITableViewCell 中。我在NSMutableArray 中保留UITextFields,并保留一个指向当前活动的UITextField 的整数。这是分别在点击上一个和下一个按钮时触发的两个选择器。
-(IBAction)didSelectPreviousButton:(id)sender
{
if ((textFieldIndex - 1) >= 0) {
UITextField *currentField = [self.testTextFields objectAtIndex:(textFieldIndex)];
UITextField *nextTextField = [self.testTextFields objectAtIndex:(--textFieldIndex)];
BOOL result = [nextTextField becomeFirstResponder];
NSLog([NSString stringWithFormat:@"currentField's window: %@", currentField.window]);
NSLog([NSString stringWithFormat:@"nextTextField's window: %@", nextTextField.window]);
} else {
[self dismissKeyboard:sender];
}
}
-(IBAction)didSelectNextButton:(id)sender
{
if ((textFieldIndex + 1) < [self.inspectionItemSpec.numberOfTests intValue]) {
UITextField *currentField = [self.testTextFields objectAtIndex:(textFieldIndex)];
UITextField *nextTextField = [self.testTextFields objectAtIndex:(++textFieldIndex)];
BOOL result = [nextTextField becomeFirstResponder];
NSLog([NSString stringWithFormat:@"currentField's window: %@", currentField.window]);
NSLog([NSString stringWithFormat:@"nextTextField's window: %@", nextTextField.window]);
} else {
[self dismissKeyboard:sender];
}
}
如您所见,我正在记录当前和下一个文本字段的窗口属性,并且在didSelectNextButton 中,一切都是正确的。但是,在didSelectPreviousButton 中,nextTextField.window 始终是nil。为什么会发生这种情况?
(请注意,只有在用户点击下一个按钮一次后,才会启用上一个按钮。)
【问题讨论】:
标签: iphone ios cocoa-touch uikit uitextfield