Как реализовать автозаполнение в Smartface App Studio

Я разрабатываю приложение для iOS с помощью Smartface App Studio. Мне нужно реализовать поиск с автозаполнением. Может ли кто-нибудь предложить для достижения этого. Пример: если пользователь набирает «Хо», то список мест начинается с «Хо», например «Голландия», «Гонконг» должен отображаться как предложения (во время ввода).

Я пробовал использовать pick() и label на странице. Но это работает как раскрывающийся список.

Заранее спасибо.


person Vijay Prakash Desetty    schedule 02.08.2015    source источник


Ответы (1)


После много работы я сделал свою функцию автозаполнения. Вот код.

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);
}
}
person Vijay Prakash Desetty    schedule 06.08.2015