2013-05-24 3 views
2

Я столкнулся с несколькими темами, которые обсуждают поле ввода, используя NSAlert, как показано ниже.Ящик ввода NSAlert, проверка NSTextField

- (NSString *)input: (NSString *)prompt defaultValue: (NSString *)defaultValue { 
NSAlert *alert = [NSAlert alertWithMessageText: prompt 
           defaultButton:@"OK" 
           alternateButton:@"Cancel" 
            otherButton:nil 
        informativeTextWithFormat:@""]; 
    NSTextField *input = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, 200, 24)]; 
    [input setStringValue:defaultValue]; 
    [alert setAccessoryView:input]; 
    NSInteger button = [alert runModal]; 
    if (button == NSAlertDefaultReturn) { 
     [input validateEditing]; 
     return [input stringValue]; 
    } else if (button == NSAlertAlternateReturn) { 
     return nil; 
    } else { 
     return nil; 
    } 
} 

Таким образом, вы можете вставить текстовое поле так же, как вы делаете с AlertView в прошивке. Но как вы можете проверить значение текстового поля для включения и отключения кнопки по умолчанию? iOS имеет (BOOL) alertViewShouldEnableFirstOtherButton: (UIAlertView *) alertView, чтобы вы могли проверить ввод.

спасибо.

ответ

3

набор

input.delegate=self; 

, а затем реализовать следующие методы

  • (аннулируются) controlTextDidChange: (NSNotification *) уведомление
  • (аннулируются) controlTextDidEndEditing: (NSNotification *) уведомление

вы можете подтвердить здесь

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