Tôi mới trong iphone.i đang làm ứng dụng nhắc nhở cho dự án của tôi. tôi muốn nhận các giá trị đầu vào như tiêu đề nhắc nhở và dữ liệu & Thời gian từ uiactionsheet.i đã tạo datepicker và uitextfield trong actionheet. Các actionsheet xuất hiện với textfield.when tôi nhấp vào textfield, bàn phím xuất hiện nhưng không làm việc means..when tôi đã gõ họ không thể nhìn thấy trong textfieldLàm thế nào để làm việc với UITextFields bên trong UIActionsheet?
-(void)btnSetRemainderTapped:(id)sender
{
UIActionSheet *menu = [[UIActionSheet alloc] initWithTitle:@"Select reminder date and time"
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:@"Save"
otherButtonTitles:nil,nil];
menu.tag =10;
[menu showInView:self.view];
menu.userInteractionEnabled=YES;
UITextField *txtReminderTitle= [[UITextField alloc] initWithFrame:CGRectMake(20.0, 180, 280.0, 40.0)];
[txtReminderTitle setTag:99];
[txtReminderTitle setBackgroundColor:[UIColor whiteColor]];
[txtReminderTitle setFont:[UIFont boldSystemFontOfSize:17]];
[txtReminderTitle setBorderStyle:UITextBorderStyleNone];
[txtReminderTitle setTextAlignment:UITextAlignmentCenter];
txtReminderTitle.borderStyle = UITextBorderStyleRoundedRect;
txtReminderTitle.keyboardType = UIKeyboardTypeDefault;
txtReminderTitle.returnKeyType = UIReturnKeyDone;
txtReminderTitle.delegate =self;
[menu addSubview:txtReminderTitle];
UIDatePicker *pickerView = [[UIDatePicker alloc] init];
pickerView.datePickerMode = UIDatePickerModeDateAndTime;
pickerView.tag =9999;
[menu addSubview:pickerView];
CGRect menuRect = menu.frame;
NSInteger orgHeight = menuRect.size.height;
menuRect.origin.y -= 270; //height of picker
menuRect.size.height = orgHeight+270;
menu.frame = menuRect;
CGRect pickerRect = CGRectMake(20, 250, 280, 200);
pickerView.frame = pickerRect;
}
-(void) actionSheet:(UIActionSheet *)actionSheet willDismissWithButtonIndex:(NSInteger)buttonIndex
{
UIDatePicker *datePicker = (UIDatePicker *)[actionSheet viewWithTag:9999];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.dateStyle = NSDateFormatterLongStyle;
[df setTimeStyle:NSDateFormatterShortStyle];
UITextField * txtReminderTitle = (UITextField *)[actionSheet viewWithTag:99];
NSLog(@"%@",txtReminderTitle.text); //it print null value
}
Tôi không chắc chắn lý do tại sao nó không chấp nhận đầu vào từ bàn phím. Bất kỳ đề xuất?
Đây là lạm dụng của 'UIActionSheet'. Đây không phải là mục đích của nó. Không sử dụng các thành phần UI chuẩn theo cách chúng không được thiết kế. Điều gì sẽ xảy ra khi Apple hoàn toàn thay đổi cách hoạt động của UIActionSheet' hoặc trông giống như một phiên bản iOS trong tương lai? Tạo chế độ xem tùy chỉnh của riêng bạn để hiển thị những gì bạn cần. – rmaddy
nhưng wt u cần phải đặt UITextField trong UIActionSheet ?? nó rất đơn giản và đẹp để đặt nó trong UIAlertView. – iPatel
lý do bạn không sử dụng Thông báo thay vì UIActionsheet ..? –