我有一個奇怪的問題。我有3 UITextField
s和一個UITextView
。我可以從一個UITextField
通過移動到下一個UITextField
:UITextView:文本從第二行文本視圖開始
- (BOOL) textFieldShouldReturn:(UITextField *)textField
{
NSInteger nextTag = textField.tag + 1;
//-- try to find next responde
UIResponder* nextResponder = [textField.superview viewWithTag:nextTag];
if (nextResponder)
{
//-- found next responce ,so set it
[nextResponder becomeFirstResponder];
}
else
{
[scrollView setContentOffset:CGPointMake(0, 0) animated:YES];
//-- not found remove keyboard
[textField resignFirstResponder];
return YES;
}
return YES;
}
所有直到它UITexView
,然後我在文中觀點的二號線光標移動到位文本視圖的一號線的正常工作。
文本視圖取自IB。
文本視圖代碼:
- (void) textViewDidBeginEditing:(UITextView *)textView
{
optionalText.hidden = YES ;
[scrollView setContentOffset:CGPointMake(0, textView.center.y-100) animated:YES];
}
- (BOOL) textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
// Any new character added is passed in as the "text" parameter
if ([text isEqualToString:@"\n"])
{
// Be sure to test for equality using the "isEqualToString" message
[textView resignFirstResponder];
[scrollView setContentOffset:CGPointMake(0, 0) animated:YES];
// Return FALSE so that the final '\n' character doesn't get added
if ([[commentTxtView.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] == 0)
{
optionalText.hidden = NO ;
NSLog(@"Text View is null");
[scrollView setContentOffset:CGPointMake(0, 0) animated:YES];
}
return FALSE;
}
return TRUE;
}
它看起來像這樣:
可能是什麼問題呢?爲什麼它不是從第一行的文本視圖開始的?
在這種情況下,scrollview是什麼?我會仔細檢查下面這行:[scrollView setContentOffset:CGPointMake(0,textView.center.y-100)animated:YES]; – Maggie
你能告訴我們你在哪裏調用你的textFieldShouldReturn方法嗎?如果您在視圖生命週期的最初階段調用它,因爲您有多個textField,條件「if(nextResponder)」會自動將您發送到下一個textField。 – shinyuX