2012-06-22 2 views
3

Я покажу UIAlertView с UIAlertViewStylePlainTextInput стиль. Тогда я пытаюсь проверить на пустое поле, как это:Подтверждение для текстового поля в uialertview

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 

    if (buttonIndex == 1) { 
     if ([[alertView textFieldAtIndex:0].text length] > 0 || 
      [alertView textFieldAtIndex:0].text != nil || 
      [[alertView textFieldAtIndex:0].text isEqual:@""] == FALSE) 
     { 
      NSLog(@"error"); 
     } 
     else 
     { 
      [self postToServer]; 
     } 
    } else { 
     //close alertview 
    } 
} 

Но он показывает мне сообщение об ошибке в журнале, даже если текстовое поле не пусто.

+1

изменить этот оператор [alertView textFieldAtIndex: 0] .text length]> 0 as [alertView textFieldAtIndex: 0] .text length] == 0 – Sumanth

ответ

2

Это потому, что if заявление содержит

[[alertView textFieldAtIndex:0].text length] > 0 

, что означает, если есть текст, то NSLog(@"error"); Ваш, если должно быть:

if ((![alertView textFieldAtIndex:0].text) || [[alertView textFieldAtIndex:0].text isEqual:@""]) 
{ 
     NSLog("error"); 
} 
+1

Спасибо! просто моя невнимательность ... –

2

Вы можете использовать следующую

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 

    if (buttonIndex == 1) { 
     NSString *text = [alertView textFieldAtIndex:0].text; 

     if([text isEqualToString:@""]) 
     { 
      NSLog(@"empty"); 
     } 
     else { 
      NSLog(@"Not empty"); 
     } 
    } 
} 
+0

Спасибо, Омар!)) –

+0

приветствую :) –

1

Fi во-первых, у вас есть NSLog (ошибка @); в области кода, которая будет истинна, если текстовое поле длиннее 0. Это кажется противоположным тому, что вы хотите !!!

Попробуйте это:

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 
    if (buttonIndex == 1){ 
     if ([[alertView textFieldAtIndex:0].text length] > 0 ||     
      [[alertView textFieldAtIndex:0].text isEqual:@""] == FALSE){ 
      [self postToServer]; 
     }else{ 
      NSLog(@"error"); 
     } 
    }else{ 
     //close alertview 
    } 
} 

Вам не нужны длиной больше нуля в этом случае заявления, но если вы как-то ожидая невидимые символы, чем это может быть OK, чтобы сохранить его !!!

Смежные вопросы