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.
Giống như widget mật khẩu iTunes? Apple có sử dụng UIAlertView cho việc này không? –