我在UIAlertView中使用UIAlertViewStylePlainTextInput添加了UITextField。我需要驗證alertview中存在的文本字段,即它不應該爲空在uialertview中添加textfield的iphone驗證
我應該怎麼做?
我在UIAlertView中使用UIAlertViewStylePlainTextInput添加了UITextField。我需要驗證alertview中存在的文本字段,即它不應該爲空在uialertview中添加textfield的iphone驗證
我應該怎麼做?
你可以在文件所有者從UIAlertViewDelegate方法
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
綁定文本字段事件「編輯真的結束」,或類似的打電話給你的validate方法,一種用於處理驗證。該方法是您在controller.m文件中編寫並在controller.h文件中聲明的方法。控制器文件的確切名稱取決於應用程序代碼庫的結構。
如何處理驗證失敗的情況,例如,內容爲空,取決於您的應用程序的需求。例如,如果內容爲空,則需要提醒用戶,然後將焦點重置到文本字段。
如果你對iOS編程有點新鮮,你可能會發現Ray Wnderlich的教程很有用。 http://www.raywenderlich.com/
我發現「iOS學徒」做得很好。此外,Dave Mark撰寫的一本新書「iOS 5開發入門」可能會有所幫助。
設置alertView的代表到您當前的viewController
然後在委託方法
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0)return; //for cancel button
UITextField *textField = [alertView textFieldAtIndex:0]; // since there is only one UITextField in alertView
if ([textField.text length] > 0) // checking the length of the text in UITextField
{
// Your code goes here
}
}
我希望這有助於。
BR,哈日
1:獲取在alertView的UITextField
:
self.alertViewTextField = [alertView textFieldAtIndex:0];
2:檢查文本長度時,文本框的編輯更改:
[self.alertViewTextField addTarget:self action:@selector(alertViewTextFieldDidChanged) forControlEvents:UIControlEventEditingChanged];
-(void)alertViewTextFieldDidChanged{
if(self.alertViewTextField.text.length == 0){
// ...
}
}
讓我們假設你有一個「確定」按鈕(或類似的東西)與UIAlertView的其他按鈕中的第一個按鈕相同。進一步假設,如果且僅當文本字段中的文本長度大於0時,才希望啓用該按鈕。然後驗證的解決方案很簡單。在UIAlertView中的委託實現:
- (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView
{
return [[alertView textFieldAtIndex:0].text length] > 0;
}
這樣做的好處比一些其他的答案(使用clickedButtonAtIndex :),即用戶直接感知的文本字段是否包含有效的輸入。
這個委託消息在Apple的文檔中沒有得到很好的解釋,但它工作得很好。對文本字段值的任何更改都會導致發送此消息,並且相應地啓用或禁用「確定」按鈕。