我有UIScrollView
并排2 view
个,每个都覆盖整个屏幕。
它们被移动到用户动作的可见边界,一次只有一个覆盖屏幕。这两个视图都有多个UITextFields
。使用模拟器,我在第一个视图中填写textField
,当我按Tab键时,firstResponder
被分配到另一个视图中的textField
。我知道在使用设备时,用户将无法做到这一点。但是如果用户使用蓝牙键盘或类似配件怎么办?我不想要一个当前不可见的textField成为firstResponder
。可以这样做吗?
编辑:我刚才记得canBecomeFirstResponder
方法。但是,如何确定哪个textField
即将becomeFirstResponder
?
答案 0 :(得分:1)
听起来问题不在于它们不能在两个文本字段之间进行制表,而是它们不能编辑不可见的文本字段,它们应该是如果它们同时可见,则能够在它们之间进行选项卡。
我将实现UITextField委托方法-textFieldShouldBeginEditing:而不是限制制表符,它允许您返回一个布尔值,无论该文本字段是否应该成为第一个响应者。
如:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
// Only edit if the text field is visible
return !textField.isHidden;
}
您可能需要调整此代码以适合文本字段的“可见”状态。