2010-02-01 5 views
0

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

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

ИЛИ

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

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

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

ответ

2

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

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

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

0

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

0

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

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

+0

Здравствуйте, как я могу удалить прозрачный элемент управления после совершения покупки? – pratik

+0

@pratik: '-removeFromSuperview'. – kennytm

0

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