2010-02-01 62 views
0

我正在为一个现有应用程序开发In App购买。场景就像我在应用程序中有一个功能(它包含UITextField控件),它最初被禁用,当用户点击该UITextField时,它显示消息解锁并购买该功能,一旦完成,UITextField将被启用。iPhone +检测到禁用的水龙头UIControl

但问题是,由于UITextField最初被禁用,所以我无法检测到任何点击,所以我无法获得任何可以在In App购买功能中编写代码的事件。

OR

如果它无法检测禁用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 2010-02-02 06:43:30

+0

@pratik:'-removeFromSuperview'。 – kennytm 2010-02-02 10:42:53

0

用户如何知道按下禁用的按钮?你最好提供一个非禁用的按钮,以清楚当你按下它时会发生什么。