2013-10-19 23 views
5

Tôi đang sử dụng UITextField trong ứng dụng của mình. Tôi đang sử dụng [texfield becomeFirstResponder]. Điều này hoạt động tốt và tải bàn phím khi khung nhìn được tải. Tuy nhiên, lỗi này xuất hiện khi tôi nhấp vào UITextField một lần nữa sau khi nó đã được đưa lên. Tôi không hiểu chính xác lý do tại sao, nhưng đây là kết quả tôi nhận được:Ngữ cảnh không hợp lệ 0x0 trên UITextField (Xcode 5)

CGContextSetFillColorWithColor: invalid context 0x0. 
CGContextSetStrokeColorWithColor: invalid context 0x0. 
CGContextSaveGState: invalid context 0x0. 
CGContextSetFlatness: invalid context 0x0. 
CGContextAddPath: invalid context 0x0. 
CGContextDrawPath: invalid context 0x0. 
CGContextRestoreGState: invalid context 0x0. 
CGContextSaveGState: invalid context 0x0. 
CGContextSetFlatness: invalid context 0x0. 
CGContextAddPath: invalid context 0x0. 
CGContextDrawPath: invalid context 0x0. 
CGContextRestoreGState: invalid context 0x0. 

Đây là mã của tôi:

// ViewController.h 
@interface ViewController : UIViewController 
@property (strong, nonatomic) IBOutlet UITextField *textField; 

@end 


// ViewController.m 
@synthesize textField; 

- (void)viewDidLoad 
{ 
    [textField becomeFirstResponder]; 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
} 
+0

bạn có thể đăng thêm một số mã không. ? – Priyatham51

+1

Tôi có nghĩa là tôi không thực sự biết bao nhiêu mã nguồn tôi có thể thêm lol. Nó khá tự giải thích. Tôi đã chỉnh sửa nó mặc dù @ Priyatham51 – Zack

+0

Đó là điều tuyệt vời về lỗi này. Bạn có thể tạo lại nó bằng mã không - bạn thậm chí không cần ổ cắm vào trường văn bản. Tuy nhiên, để tạo lại cảnh báo, trường văn bản cần phải hoàn toàn trống khi bạn nhấn đúp. Hơn nữa, lỗi này vẫn tồn tại trong iOS 7.0.3 cả trong trình mô phỏng và trên thiết bị. – bilobatum

Trả lời

4

Tôi tin rằng bạn đã tìm thấy lỗi iOS (hoặc ít nhất là lỗi trình mô phỏng). Bạn có thể tái tạo nó thậm chí đơn giản hơn:

  • New Project (Single View)
  • Kéo UITextField vào Storyboard
  • Run
  • Bấm vào UITextField.
  • Bấm tắt của UITextField
  • Bấm vào UITextField
  • (Trong một số trường hợp, bạn cần phải bấm tắt của UITextField một lần nữa)
  • Quan sát lỗi

tôi khuyên bạn nên mở một radar.

+0

Cảm ơn bạn đã phản hồi. Tôi nghĩ rằng đây có thể là một lỗi giả lập nhưng không chắc chắn. Tôi chỉ sợ rằng ứng dụng này sẽ được sản xuất và sau đó không hoạt động vì vậy tôi nghĩ rằng tôi sẽ thấy những gì phản ứng tôi sẽ nhận được ra khỏi nó trên tràn ngăn xếp. Bạn có thể giải thích radar là gì và tôi sẽ làm điều đó. – Zack

+3

Radar là biệt hiệu cho bugreport.apple.com. "Một radar" là một khiếm khuyết được mở trên hệ thống đó. (Đối với giải trí của bạn: tên "Radar" xuất phát từ bộ phim truyền hình MASH, có một nhân vật tên đó luôn biết những gì bạn muốn trước khi bạn yêu cầu.) –

+0

@Zack bạn đã điền radar này chưa? Tôi đang trải qua chính xác như vậy. – amb

-2

Nó có vẻ như bạn đang vẽ một số bối cảnh trên màn hình. Bạn cần viết mã để vẽ trong phương thức drawRect. Bạn mite đã viết mã khácTại đây. Trong phương thức drawRect, hãy chắc chắn rằng bạn kiểm tra xem ngữ cảnh có tồn tại không.

CGContextRef context = UIGraphicsGetCurrentContext(); 
    if (context) { 
     // Do your stuff 
      } 
+0

Nếu bạn sao chép và dán mã nguồn tôi đã đưa ra ở trên vào một dự án mới với một UITextField trong bảng phân cảnh của Xcode 5, nó sẽ cung cấp cho bạn lỗi khi bạn nhấp vào UITextField mà bạn đã tạo. – Zack

Các vấn đề liên quan