ลาออกและเป็นผู้ตอบกลับคนแรกใน iOS 8.3

ฉันเพิ่ง "อัปเกรด" เป็น 8.3 และตรรกะที่ให้ฉันเปลี่ยนจาก UITextfield อันเดียวไม่ทำงานอีกต่อไป ขณะนี้มีโค้ดต่อไปนี้เมื่อผู้ใช้จบข้อความและไปที่ฟิลด์ถัดไปโดยอัตโนมัติ ระบบจะล้างฟิลด์ก่อนหน้า สิ่งนี้ทำงานได้อย่างสมบูรณ์แบบใน iOS เวอร์ชันก่อนหน้า มีข้อเสนอแนะอะไรบ้าง? ขอบคุณ. นี่มันน่าโมโหมาก

} else if (alertView.tag == 1) {
        NSLog(@"it's tag ONE");
        if (buttonIndex == 0) {
            NSLog(@"YES");
            [defaults setObject:self.dobTextField.text forKey:@"DateOfBirth"];
            [defaults setObject:self.ageLabel.text forKey:@"Age"];
            NSLog(@"set dob: %@", self.dobTextField.text);
            [self.dobTextField resignFirstResponder];
            [self.dateOfDiagnosisTextField becomeFirstResponder];
        } else {
            self.dobTextField.text = nil;
            [self.dobTextField becomeFirstResponder];
        }

person vboombatz    schedule 16.04.2015    source แหล่งที่มา
comment
บางทีอาจเป็นแค่การเลือกที่สอง (else) มันเคลียร์สนาม   -  person matt    schedule 16.04.2015
comment
รหัสของคุณใช้เส้นทางใด การดีบักเปิดเผยอะไรบ้าง?   -  person rmaddy    schedule 16.04.2015
comment
ฉันได้รับข้อผิดพลาดที่คล้ายกันมาก โดยที่ UITextField ไม่กลายเป็นการตอบกลับครั้งแรกหลังจากแสดง alertView ใน iOS8.3 เท่านั้น มันทำงานได้ดีก่อนที่จะอัปเกรด   -  person Darren    schedule 29.04.2015
comment
ตรงนี้ก็เหมือนกัน. มันแปลกเพราะแม้ว่าคุณจะเรียกกลายเป็นFirstResponderอย่างชัดเจนในช่องข้อความ แต่ช่องข้อความจะกลายเป็นผู้ตอบกลับคนแรกเพียงครึ่งเดียวเท่านั้น เคอร์เซอร์ปรากฏขึ้นบนช่องข้อความ แต่จะไม่กะพริบและแป้นพิมพ์ไม่แสดงขึ้นมา   -  person Ayaka Nonaka    schedule 29.04.2015


คำตอบ (1)


ฉันแก้ไขปัญหานี้ในแอปของฉันโดยแทนที่ UIAlertViews ด้วย UIAlertControllers การดำเนินการนี้ใช้เวลานานมาก แต่เนื่องจาก UIAlertView เลิกใช้แล้ว จึงดูเหมือนว่าจะระมัดระวัง

person Darren    schedule 30.04.2015
comment
น่าสนใจ. ฉันแก้ไขปัญหาของฉันบางส่วนโดยการลบการลาออกและกลายเป็นจากมุมมองการแจ้งเตือน - person vboombatz; 01.05.2015