我們正在做一個UITableViewCell
驗證。該電池在點擊一個textView
和一個自定義按鈕,彈出了含有UIDatePickerView
應該打開&用戶將選擇日期。這裏選擇日期是強制性的。所以我們使用下面的代碼進行了驗證。 textViewBeginEditing
代理方法textView
位於緊接着的下一行的單元格內。即當用戶點擊下一行中的textView
時,以前的行值將被驗證。 這裏驗證似乎是工作,但光標仍然閃爍在當前單元格,不移動到正在驗證先前的小區。如何設置光標位置的UITextView內的UITableViewCell
UITableViewCell* myCell = (UITableViewCell*)textView.superview ;
UITextView *txtviewMycelltext;//=[[UITextView alloc]init];
for (UIView *view in myCell.subviews)
{
if([view isKindOfClass:[UILabel class]])
{
UILabel *lbl=view;
lbl.text=[lbl.text stringByReplacingOccurrencesOfString:@"." withString:@""];
int tablerowindex=[lbl.text intValue];
NSLog(@"%@",lbl.text);
break;
}
if([view isKindOfClass:[UITextView class]])
{
txtviewMycelltext=view;
}
}
inttablerowindex-=1;
if(inttablerowindex>0)
{
if([[arrActionvalues objectAtIndex:inttablerowindex1]objectForKey:KEY_FOLLOWUPDATE]==EMPTYSTRING)
{
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle: @"Alert"
message: ALERT_FOLLOWUPDATE
delegate: nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
// UITableView *mytable=(UITableView *)((textView.superview).superview).superview;
UITableView *myTable=(UITableView*)[[myCell superview]superview];
NSIndexPath *indexPath = (NSIndexPath*)[myTable indexPathForCell:
(UITableViewCell*)textView.superview.superview];
UITableViewCell *previousCell = (UITableViewCell*)[myTable cellForRowAtIndexPath:[NSIndexPath indexPathForRow:indexPath.row - 1 inSection:indexPath.section]];
for (UIView *view in previousCell.subviews)
{
NSLog(@"%@",view);
if([view isKindOfClass:[UIView class]]) {
UIView *subView=view;
for(UIView *view2 in subView.subviews)
{
if([view2 isKindOfClass:[UITextView class]]) {
UITextView *txt=view2;
[txtviewMycelltext resignFirstResponder];
[txt becomeFirstResponder];
break;
}
}
}
}
}
}
請讓我知道需要做什麼才能將光標位置移動到正確的單元格。
這是一個情況下我會建議使用標籤 –
CodaFi
究竟是什麼,你確認?你的代碼主要是通過視圖迭代,而不是笨拙的... – Mundi
即時嘗試驗證用戶是否選擇了當前單元格中的日期。如果他沒有將光標位置設置到他必須選擇日期的行。 – user1531912