2016-03-17 51 views
3

,我發現從Appcelerator的文檔下面的示例代碼(http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.AlertDialog-property-previewContext):設置文本字段的默認值內alertDialog

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(); 

的問題是,我需要設置爲輸入文本的默認值,但文檔只顯示設置佔位符的可能性,但不是其默認值。

回答

1

如果您正在爲Android構建,則可以使用androidView屬性添加包含TextField的自定義View。然後,您可以將valueTextField設置爲默認值。

對於iOS,我不知道有什麼方法可以實現您的目標,而不是製作自己的提醒對話框。也許有一些這樣的模塊。

1

對於iOS,其實你不能老是

你可以看到TiUIAlertDialogProxy.m

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

代碼沒有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財產

var dialog = Ti.UI.createAlertDialog({ 
    text:'Init text', 
    title: 'Enter text', 
    style: Ti.UI.iOS.AlertDialogStyle.PLAIN_TEXT_INPUT, 
    buttonNames: ['OK'] 
    }); 
1

可以使用鈦SDK 6.1.0及以後設置valueloginValuepasswordValue屬性警報,對話框!