2015-03-02 2 views
2

это мой код, и я хочу изменить цвет hintText, как это сделать?Как изменить цвет hintText в textField Titanium?

"#email":{ 
    width: '70%', 
    left:'13%', 
    font:{ 
     fontSize:'20sp' 
    }, 
    color: '#fff', 
    hintText:'请输入手机号', 
    borderColor:'transparent', 
    bottom:'2%', 
    //backgroundColor:'#d9d9d9', 
    backgroundColor:'transparent', 
    borderStyle:Ti.UI.INPUT_BORDERSTYLE_ROUNDED 
} 
+1

Принятый ответ ужасен, пожалуйста, не используйте этот метод. См. Ответ, предоставленный @gjerlow здесь: http://stackoverflow.com/a/37226098/971557 –

ответ

3

на самом деле вы не можете я пытался до того
здесь то, что я сделал изменить цвет подсказки и шрифт
вам нужно создать view, textfeild и label с добавлением изменений слушателя на textfeild, чтобы показать или скрыть подсказку

var mh_view = Ti.UI.createView({ 
    backgroundColor : "white", 
    height : "40dp", 
    top : "224dp", 
    left : "10dp", 
    right : "10dp", 
    width : Ti.UI.FILL 
}); 
var mail_hint = Ti.UI.createLabel({ 
    color : "#88817F", 
    font : { 
     fontFamily : customfont2, 
     fontSize : "15dp" 
    }, 
    left : "47dp", 
    //top:"14dp", 
    text : "E-mail" 
}); 
mh_view.add(mail_hint); 
var mail = Ti.UI.createTextField({ 
    backgroundImage : "/images/trans.png", 
    width : Ti.UI.FILL, 
    height : "40dp", 
    top : "224dp", 
    left : "10dp", 
    right : "10dp", 
    bubbleParent:false, 
    paddingLeft : "47dp" 
    // hintText:"E-mail" 
}); 

var visible = true; 
mail.addEventListener("change", function() { 
    if (visible) { 
     mail_hint.hide(); 
    } else { 
     if ((mail.value).length == 0) 
      mail_hint.show(); 
    } 
    visible = !visible; 

}); 

надеюсь, что это поможет :)

-1

Я думаю, Просто поместите цвет: «красный» он будет показывать текст, а также текст подсказки в красный цвет

+0

нет! он всегда серый независимо от цвета шрифта. – wind

0

Для тех, которые были искать вокруг, вы можете сделать это с помощью «hintTextColor», вы можете использовать его для текстового поля, но я использовали его для панели поиска, смотрите пример ниже:

var searchInputBox = Titanium.UI.createSearchBar({ 
    backgroundColor:'#fff', 
    hintTextColor:'#777', 
    backgroundFocusedColor: "red", 
    color: "#000", 
    showCancel:true, 
    height: 60, 
    width: "94%", 
    top: 100, 
    left: "3%", 
    hintText: "E.g. Bananas...", 
    font: { color: "#fff"}, 
}); 

Я нашел это упоминается здесь в посте: https://jira.appcelerator.org/browse/TIMOB-18433

3

Это также может быть сделано с помощью AttributedString и AttributedHintText, который поддерживает как Android, так и iOS.

var emailHintText = "Your email"; 
 

 
var attributedEmailHintText = Titanium.UI.createAttributedString({ 
 
\t \t text : emailHintText, 
 
\t \t attributes : [{ 
 
\t \t \t type : Ti.UI.ATTRIBUTE_FOREGROUND_COLOR, 
 
\t \t \t range : [0, emailHintText.length], 
 
\t \t \t value : '#88817F', 
 
\t \t }] 
 
\t }); 
 

 
$.email.setAttributedHintText(attributedEmailHintText);

AttributedString также позволит вам добавить дополнительные атрибуты в строку/hintText в дополнение к цвету. Читайте об этом в Appcelerators Документация:

AttributedString Foreground Color

Ti.UI.AttributedString

UPDATE 15.08.16

После выхода Titanium SDK 5.4.0.GA, IOS теперь поддерживает свойство и тому метод setHintTextColor для текстовых полей. Подробнее в Titanium SDK Release Notes for iOS

+0

+1 Это лучший ответ и единственный, который является кросс-платформенным. Забудьте всю эту фигню со скрытием и показом элементов. OP, пожалуйста, отметьте это как правильный ответ. –

+1

Спасибо, @NoelBaron. Также легко сделать функцию для предотвращения дублирования кода при использовании нескольких текстовых полей или для TextField нужны разные hintTexts. – gjerlow

0

Просто добавьте свойство hintTextColor.

"#email":{ 
    width: '70%', 
    left:'13%', 
    font:{ 
     fontSize:'20sp' 
    }, 
    color: '#fff', 
    hintText:'Hint Text', 
    hintTextColor : "#787878", 
    borderColor:'transparent', 
    backgroundColor:'transparent', 
    borderStyle:Ti.UI.INPUT_BORDERSTYLE_ROUNDED 
} 
+0

Добавьте некоторое объяснение с ответом на вопрос, как этот ответ помогает OP в устранении текущей проблемы –

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