在我的iPad应用程序中,我有两个文本字段。一个显示正常的默认文本字段,另一个显示选择器作为其输入视图。
问题是,一旦我使用txt1
显示默认键盘,然后当我触摸第二个textField时txt1
键盘保持可见。
我还在显示选择器时写了[txt1 resignFirstResponder];
[txt2 resignFirstResponder];
。
我检查了txt1 IBOutlet
连接和委托分配,这些似乎是正确的。
我错过了什么?
答案 0 :(得分:2)
你必须实现以下方法来重新签名键盘......
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
答案 1 :(得分:2)
编写以下代码:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
if(textField == txt1)
{
return YES;
}
else
{
return NO; // Write the code for displaying UIPickerView instead of the Keyboard.
}
}
希望这可以解决你的问题......
答案 2 :(得分:2)
txt2.userInteractionEnabled = NO;
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
if(textField == txt1)
{
[txt2 resignFirstResponder];
// code for Hide Picker
return YES;
}
else {
// [txt2 resignFirstResponder];
[txt1 resignFirstResponder];
// code for go in picker
return YES;
}
}
答案 3 :(得分:0)
你实现了这个方法吗?
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
答案 4 :(得分:0)
在viewDidLoad
方法中写下这个,
txt2.inputView = pickerView;
和其他resignFirstResponder
代码应该正确放置,通过点击txt2,你将直接获得pickerview而不是Keyboard。
答案 5 :(得分:0)
是否在头文件中实现了UITextFieldDelegates
的委托属性,如果不这样做并检查