次のようなNSAlertを使用した入力ボックスについて議論するいくつかのトピックに出くわしました。
- (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;
}
}
そのため、iOSのAlertViewと同じようにテキスト ボックスを挿入できます。しかし、テキスト フィールドの値を検証してデフォルト ボタンを有効または無効にするにはどうすればよいでしょうか。iOS には(BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertViewがあり、入力を検証できます。
ありがとうございました。