2012-06-25 18 views
6

Tôi nghĩ điều này thật kỳ lạ, tôi đã tạo lớp của riêng mình kế thừa từ UIAlertView. Trong lớp này, tôi thêm một UITableView làm subview và các ô chứa một UILabel và một UITextField.UITextField: không thể nhập văn bản nhưng biểu tượng mặt cười, sao chép/dán và backspace là tốt

các cụ lớp: UITableViewDelegate, UITableViewDataSource và UITextFieldDelegate,

Trong cellForRowAtIndexPath mỗi cell.uiTxtField.delegate được thiết lập để tự.

Sau đây xảy ra cả trong mô phỏng và trên thiết bị iPhone thật:

  • Khi tôi đặt con trỏ/ngón tay trong UITextField bàn phím bật lên và textFieldDidBeginEditing được kích hoạt, đó là tốt và như mong đợi.

  • Khi tôi rời khỏi UITextField, textFieldDidEndEditing được kích hoạt, cũng tốt và như mong đợi.

  • Nhưng khi tôi bắt đầu nhập văn bản, con trỏ ngừng nhấp nháy nhưng không có văn bản được nhập vào UITextField.

  • tôi có thể sao chép và dán văn bản bằng cách giữ con trỏ/ngón tay trong một UITextField có chứa văn bản, chọn sao chép và sau đó dán nó vào một UITextField (hoặc tương tự).

  • backspace hoạt động tốt.

  • Nó cũng cho phép của tôi gõ vào biểu tượng và biểu tượng mặt cười, vv

  • Điều duy nhất tôi không thể gõ vào là ký tự/chữ cái và số

  • Nút trở không kích hoạt textFieldShouldReturn

Kể từ textFieldDi dBeginEditing và textFieldDidEndEditing được kích hoạt Tôi cho rằng thiết lập đại biểu của tôi là tốt, nhưng tôi không thể hiểu tại sao tôi không thể gõ văn bản và tại sao textFieldShouldReturn không được kích hoạt.

This có thể liên quan.

Mọi trợ giúp đều được đánh giá cao.

+0

tôi có cùng một vấn đề..bất kỳ ai biết giải pháp, hãy giúp nó – Anju

Trả lời

0

bạn đã đặt điều này trong phương thức "init" của lớp tùy chỉnh của bạn chưa?

thử đặt một mã như thế này trong tập tin thực thi của bạn ...

@implementation CustomAlertClass <UITextFieldDelegate> 

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
    // 
    self.YourTextField.delegate = self; 
} 
return self; 
} 

@end 
0

Câu trả lời ngắn: Hãy chắc chắn rằng bạn không có bất kỳ mã mà messes với 'chỉnh sửa' tài sản trên UITextField.

tôi đã có triệu chứng tương tự mà tôi đã chắc chắn thiết lập các đại biểu đúng và textFieldDidBeginEditing và textFieldDidEndEditing đã nhận được gọi là, nhưng textFieldShouldReturn và shouldChangeCharactersInRange đã không nhận được gọi là. Tôi cũng không thể nhập bất kỳ ký tự nào, nhưng tôi có thể sao chép dán vào trường văn bản. Trong trường hợp của tôi, tôi cũng đã xảy ra để đặt các trường văn bản bên trong các ô trong một UITableView. Tình hình của tôi hơi khác một chút khi nút xóa không hoạt động.

Nơi tôi đã đi sai, là tôi đã không sử dụng một UITextField thô trong các tế bào của tôi, tôi đã có lớp con của riêng tôi của UITextField. Lớp con của tôi có một thuộc tính 'isEditing', mà tôi đã sửa đổi trong các phương thức UITextFieldDelegate và được sử dụng để tìm ra cách cuộn chế độ xem bảng khi trường văn bản được chọn. Điều này được ghi đè phương thức 'isEditing' trên UITextField với phương thức getter cho thuộc tính 'chỉnh sửa' UITextField '. Một khi tôi đã loại bỏ các phân lớp của tôi làEditing bất động sản tất cả mọi thứ cư xử như mong đợi.

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