我有一些Double
用于获取TextFieldTableCell
数据类型值。我想验证它们。如果用户将错误的数据类型作为输入或将该字段保留为空,我想将TextFieldTableCell
标记为
背景颜色Yello
文字样式颜色红色
在验证成功结束时,我希望AUAudioUnit
再次正常。
我怎样才能实现这一目标?
答案 0 :(得分:1)
嗯,你可以通过很多方式实现,而且很多方法与你在TableCell
中实现它的方式有关,但它主要取决于DataHolder
{{1您用来帮助Object
要执行此操作,您必须创建virtualization
TableCell
来实现有关样式等的单元格更新,并且它应该与您的{相关{1}}即使有人调用另一个,或者保留两个并使用updateItem(Object,boolean)
,所以updateSelected(boolean)
updateIndex()
DataHolder
现在在您的单元格中,在您提到的其中一种方法中,您为项目添加了一个检查,例如
class
然后在你的private class CellDataHolder {
public CellDataHolder (String a){
value = a;
}
String value = "empty"; //this being the text to show
boolean badMatch = false; //this being the flag to index whether the
//text matches your preference
}
中,您将使用它来检查您的文本是否有效我认为您应该使用StringConverter的原因是它可以减少多次调用@Override
public void updateItem(CellDataHolder item, boolean empty) {
super.updateItem(item, empty);
if(empty){return;}
setText(item.value);//set your text
if(item.badMatch){//check if the text fits.
setStyle(wrongFormatStyle);//this is where you set your bad style
}else{
setStyle(normalyStyle);//the style you want
}
}
收到的,这些方法被称为soo很多次并不是很酷,在那里做了很多工作,你的细胞可能看起来很慢,所以你把它放在这里更好,例如
StringConverter
您还可以过滤调用支票时的过滤方式,是否调用刷新或进行显式编辑。例如
update...()
希望它有所帮助。