UITextField成为FirstResponder和重叠子视图

时间:2011-02-10 11:15:16

标签: iphone objective-c

我有两个问题。我创建了一个类“myfirstclass.m”,在我的“projectController.m”中创建了一个UITextField txt 。在“myfirstclass.m”中,我有一个将 txt 作为参数的方法。如果在课堂内我调用方法:

[txt becomeFirstResponder];

它不起作用。显然,“myfirstclass.m”扩展了 NSObject ,“projectController.m”扩展了 UIViewController 。我怎么解决?因为在同一个类“myfirstclass.m”中我有另一个方法创建另一个 UITextField ,它被添加到主视图中,当显示它时,当前的textField成为第一个响应者。

我的第二个问题是:我有一个UIButton和一个UITextField,我将它们添加到广告视图中,我希望:UITextField显示在前景中,UIButton显示在后台。我现在通过UITextFiled的属性可以设置背景图像,但我想要比UITextField更大的UIButon,但我希望UIButton是背景,UITextField是前景。

提前致谢!

2 个答案:

答案 0 :(得分:0)

对第一个问题:我假设您正在使用界面构建器。确保您的UITextField已连接到UIViewController子类的相应插座。忘记在界面构建器中连接插座是对象没有出现在屏幕上或在代码中没有正确响应的最常见问题。

答案 1 :(得分:0)

这是一个示例伪代码:

projectController.m

#import "myFirstClass.h"

UITextField *txt =  [[UITextField alloc] initWithFrame:CGRectMake(0,38,194,37)];
myFirstClass *ojb = [[myFirstClass alloc] init];
[obj sendTxt:txt];

myFirstClass.m

- (void) sendTxt:(UITextField *text) {
UITextField *txt = text;
[txt becomeFirstResponder];
}

“myfirstclass.m”扩展了NSObject,“projectController.m”扩展了UIViewController。