iPhone + обнаружить нажатие отключенного UIControl - PullRequest
0 голосов
/ 01 февраля 2010

Я разрабатываю покупку в приложении для одного существующего приложения. Сценарий - это что-то вроде того, что у меня есть функция в приложении (которая содержит элемент управления UITextField), которая изначально отключена, и когда пользователь нажимает на этот UITextField, он показывает сообщение, чтобы разблокировать и купить эту функцию, и когда это будет сделано, UITextField будет включен.

Но проблема в том, что, поскольку UITextField изначально отключен, я не могу обнаружить ни одного касания по нему, поэтому я не могу получить событие, на котором я могу написать код для функции покупки в приложении.

OR

Если невозможно обнаружить касание отключенного UIControl, какой может быть другой вариант для достижения вышеуказанной функциональности.

Пожалуйста, помогите.

С уважением, Praik

Ответы [ 4 ]

2 голосов
/ 01 февраля 2010

Поместите невидимую кнопку над текстовой областью, сделав такую ​​кнопку:

    UIButton* button = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
    button.frame =CGRectMake(<em>your parameters here</em>);
    button.showsTouchWhenHighlighted=YES; // handy for debugging
    [button addTarget:self action:@selector(buttonPress:) forControlEvents:UIControlEventTouchUpInside];

и добавление его в качестве подпредставления. В зависимости от того, чего вы пытаетесь достичь и в чем содержится ваш UITextField, то, что вам нужно добавить, может отличаться.

0 голосов
/ 01 февраля 2010

Как пользователь узнает, что нужно нажать отключенную кнопку? Вам лучше предложить не отключенную кнопку, которая ясно показывает, что произойдет, когда вы нажмете ее.

0 голосов
/ 01 февраля 2010

Непросто обнаружить касания отключенных UIControl напрямую, если вы не разберетесь с ними и не перехватите методы -touchesXXXXX:withEvents:.

Однако вы можете наложить активный и прозрачный UIControl поверх отключенного, чтобы захватить кран. Снимите прозрачный элемент управления после совершения покупки.

0 голосов
/ 01 февраля 2010

Из того, что я помню, подпредставления отключенных представлений также отключены, поэтому я предполагаю, что ваша "особенность" - отключенное представление. Вы можете попытаться поместить ваш UIControl в представление, которое не отключено (например, окно UIWindow или любое подпредставление), и поместить его сверху. Не уверен на 100%, но я думаю, что это должно сработать.

...