在alertDialog中设置TextField的默认值

时间:2016-03-17 00:24:22

标签: appcelerator appcelerator-titanium

我从Appcelerator的文档(http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.AlertDialog-property-previewContext)中找到了以下示例代码:

    var dialog = Ti.UI.createAlertDialog({
    title: 'Enter text',
    style: Ti.UI.iOS.AlertDialogStyle.PLAIN_TEXT_INPUT,
    buttonNames: ['OK']
  });
  dialog.addEventListener('click', function(e){
    Ti.API.info('e.text: ' + e.text);
  });
  dialog.show();

问题是我需要为输入文本设置默认值,但文档只显示设置占位符的可能性,但不是默认值。

3 个答案:

答案 0 :(得分:1)

如果您要为Android构建,可以使用androidView属性添加包含View的自定义TextField。然后,您可以将value的{​​{1}}设置为默认值。

对于iOS,我不知道如何实现您的目标,而不是制作自己的警报对话框。也许这里有一些模块。

答案 1 :(得分:1)

对于iOS,实际上你不能

您可以看到int r = foo(); // returns an int r -= r > 0; // same as `if(r > 0) r--;`

的代码

https://github.com/appcelerator/titanium_mobile/blob/master/iphone/Classes/TiUIAlertDialogProxy.m#L164

没有TiUIAlertDialogProxy.m

TextField

但您可以手动创建,添加此代码

if ( (style == UIAlertViewStylePlainTextInput) || (style == UIAlertViewStyleSecureTextInput) ) { [alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) { textField.secureTextEntry = (style == UIAlertViewStyleSecureTextInput); textField.placeholder = [TiUtils stringValue:[self valueForKey:@"placeholder"]] ?: @""; textField.keyboardType = [TiUtils intValue:[self valueForKey:@"keyboardType"] def:UIKeyboardTypeDefault]; textField.returnKeyType = [TiUtils intValue:[self valueForKey:@"returnKeyType"] def:UIReturnKeyDefault]; textField.keyboardAppearance = [TiUtils intValue:[self valueForKey:@"keyboardAppearance"] def:UIKeyboardAppearanceDefault]; }]; }

然后传递textField.text = [TiUtils stringValue:[self valueForKey:@"text"]] ?: @"";属性

text

答案 2 :(得分:1)

您可以使用Titanium SDK 6.1.0及更高版本将valueloginValuepasswordValue属性设置为警报对话框!