我正在使用Smartface App Studio开发iOS应用程序。我需要使用auto complete实现搜索。可以建议实现这一点。 例如:如果用户输入" Ho"那么地方列表以" Ho"喜欢"荷兰","香港"需要显示为建议(在打字时)。
我在页面上尝试了pick()和标签。但这可以作为下拉列表。
提前致谢。
答案 0 :(得分:0)
经过多方努力,我完成了自动完成功能。这是代码。
function PrepareAutoComplete(page, pageName) {
try {
var label_for_repeatbox = new SMF.UI.Label({
height : '100%',
width : '100%',
horizontalGap : 10,
left : '0%',
top : '0%',
fontColor : SMF.UI.Color.black,
backgroundTransparent : true
});
var rBox = new SMF.UI.RepeatBox({
name : 'rptDestinations',
width : '100%',
height : '90%',
left : Pages.PlacesToGo.edtBoxSelectDestination.left,
top : Pages.PlacesToGo.edtBoxSelectDestination.top + Pages.PlacesToGo.edtBoxSelectDestination.height + 1,
borderWidth : 1,
dataSource : [],
showScrollbar : true,
onRowRender : function onRowRender(e) {
this.controls[0].text = e.rowData;
},
itemTemplate : {
height : '10%'
}
});
label_for_repeatbox.onTouchEnded = function (e) {
alert(this.text);
}
rBox.useActiveItem = true;
rBox.visible = false;
rBox.itemTemplate.add(label_for_repeatbox);
Pages.PlacesToGo.edtBoxSelectDestination.onChange = function (e) {
if (this.text.length > 1 && isFirstTime == false) {
var search_key = this.text.toLowerCase();
var results = [];
for (var i = 0; i < Sources.length; i++) {
if (Sources[i].toLowerCase().indexOf(search_key) == 0) {
results.push(Sources.[i]);
}
}
rBox.dataSource = results;
rBox.refresh();
page.remove(rBox);
page.add(rBox);
rBox.visible = true;
}
}
Pages.PlacesToGo.edtBoxSelectDestination.onExit = function () {
rBox.dataSource = [];
rBox.refresh();
rBox.visible = false;
}
page.add(rBox);
} catch (ex) {
log(ex);
}
}