2016-01-04 1 views
1

Я разрабатываю пользовательский элемент управления iOS для Genexus X Ev3, основанный на Maps a, наследуемый от GXControlGridBase, основная функция - выбрать точку на карте и вернуть обновление геолокации Genexus атрибут и запуск события, отображающего сообщение с координатами, хранящимися в атрибуте.User Control, который запускает события GeneXus в iOS

Поиск Я нашел это:

1- в определении управления, .control файл определяет событие

<Events> 
    <Event>EventName</Event> 
</Events> 

2- в Genexus код

Event Control.EventName 
    ... 
EndEvent 

3- Для того, чтобы вызвать из объективных -C

[self fireControlEvent:@"EventName" userInterfaceContext:nil withEntityData:nil]; 

Шаги 1 & 2 готовы (и они работают, есть версия UC для Android). В случае Objective-C ¿, где я могу поместить эту строку? ¿Как обновить значение атрибута genexus?

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

ответ

1

Чтобы выбрать точку на карте, вы можете использовать пользовательский элемент управления SD Geolocation, который встроен в GeneXus.

Если вы, однако, хотите создать свой собственный пользовательский элемент управления, вы, вероятно, захотите сделать его подклассом GXControlEditableWithLabelBase или GXControlEditableWithLabelSingleEditorViewBase. То есть, если вы хотите, чтобы у него был связанный атрибут. Вы говорите, что используете подкласс GXControlGridBase, то есть для списков значений, а не только для атрибута.

Что касается последней части вашего вопроса, если вам нужно обновить значение атрибута, нет необходимости запускать событие. Вы можете вызвать этот метод из реализации элемента управления:

[self updateEntityDataResolvedFieldWithValue:fieldValue]; 

Метод -updateEntityDataResolvedFieldWithValue: определен в GXControlEditableWithLabelBase базовом классе.