Пользовательский элемент управления, который запускает события GeneXus в iOS

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

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

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

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

2- в коде Genexus

Event Control.EventName
    ...
EndEvent

3- Для запуска из Objective-C

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

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

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


person Daynel    schedule 04.01.2016    source источник


Ответы (1)


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

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

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

[self updateEntityDataResolvedFieldWithValue:fieldValue];

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

person Marcos Crispino    schedule 07.01.2016