2009-12-22 37 views
10

Là một hình thức xác thực, có cách nào để ngăn chế độ xem cảnh báo khỏi khi loại bỏ nút "OK" không?ngăn UIAlertView loại bỏ

Tình huống: Tôi có 2 trường văn bản trong chế độ xem cảnh báo cho tên người dùng/mật khẩu. Nếu cả hai đều trống và người dùng nhấn "OK", tôi không muốn cảnh báo bị loại bỏ.

+0

Giống như widget mật khẩu iTunes? Apple có sử dụng UIAlertView cho việc này không? –

Trả lời

0

Tôi không tin rằng bạn thực sự cần truyền vào bất kỳ tên nút nào. Chỉ cần lấy chuỗi nút OK của bạn và để nó là "không".

9

Bạn đang làm sai cách, bạn nên bật và tắt nút gửi theo đầu vào. Trước tiên, bạn phải có quyền truy cập vào nút. Đây là dễ dàng, chỉ cần tạo các cảnh báo mà không có nút, tạo ra một nút độc lập và thêm nó vào hộp thoại:

[alert addButtonWithTitle:@"OK"]; 
UIButton *submitButton = [[alert subviews] lastObject]; 
[submitButton setEnabled:…]; 

Và sau đó bạn phải thiết lập một đại biểu cho những textfields và kích hoạt hoặc vô hiệu hóa các nút khi các lĩnh vực thay đổi :

- (BOOL) textField: (UITextField*) textField 
    shouldChangeCharactersInRange: (NSRange) range 
    replacementString: (NSString*) string 
{ 
    int textLength = [textField.text length]; 
    int replacementLength = [string length]; 
    BOOL hasCharacters = (replacementLength > 0) || (textLength > 1); 
    [self setButtonsAreEnabled:hasCharacters]; 
} 

// Disable the ‘Return’ key on keyboard. 
- (BOOL) textFieldShouldReturn: (UITextField*) textField 
{ 
    return NO; 
} 

Tất nhiên bạn nên gói tất cả điều này vào một lớp riêng biệt để không làm hỏng mã gọi điện.

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