UITextField无法正常工作

时间:2011-06-27 00:57:38

标签: iphone objective-c xcode ios4 uitextfield

我是Objective-c编程的新手,很抱歉,如果这是一个愚蠢的问题,但我看起来彻底,无法找到错误, p.s:英语不是我的第一语言,因此可能无意中使用编程关键字

我已经设置了一个txtfield并定义了它的一些属性,比如键盘数字键盘和东西,问题是,当我在模拟器上运行时,没有任何反应,调用defult键盘。

我只是想做一些简单的事情来解决这个问题, 在我的.h,我有

@interface practiceViewController : UIViewController <UITextFieldDelegate>
{
    UITextField *userInput;
}
@property (nonatomic, retain, readwrite) UITextField *userInput;
@end

和我的.m

-(UITextField *)userInput{
if (userInput == nil) {

userInput=[[UITextField alloc]init];
userInput.keyboardType= UIKeyboardTypeNumberPad;
userInput.returnKeyType= UIReturnKeyDone;
userInput.textColor=[ UIColor redColor];
userInput.clearButtonMode= UITextFieldViewModeWhileEditing;
userInput.delegate = self;
}

return userInput;

}

我也尝试将其作为输入,但是为了一些共鸣它不起作用

int nInput=[[userInput text] intValue];
是什么让我感到沮丧的是,我在之前的项目中做了同样的事情并且“输入工作”,但现在一切都没有。 和我的财产,因为我没有定义任何东西。 我感谢你的帮助

4 个答案:

答案 0 :(得分:1)

我认为你必须像这样设置UITextField的框架......

userInput.frame=CGRectMake(100,100,60,31);

在你的 - (UITextField *)userInput方法中,它没有显示..

答案 1 :(得分:0)

很少有东西是模糊的但是......

您将使用

获取文本字段的值
int nInput = [[userInput text] intValue];

如果您没有得到正确的值,那么nInput将为零。这是因为userInput必须是nil。您可以通过在上一行之前添加NSLog(@"%@", userInput);来记录来验证这一点。

无论打印什么值,userInput都不会引用屏幕上的文字字段。

由于您以编程方式执行整个操作,因此必须通过执行此操作将userInput添加到视图层次结构中,

[self.view addSubview:self.userInput];

使用属性访问器非常重要,否则userInput将是nil,除非您之前使用self.userInput访问过它。

答案 2 :(得分:0)

虽然这是带有标签的iPhone,但你碰巧在模拟iPad吗?如果是这样,我遇到了这个问题。 iPad不会显示数字键盘。

答案 3 :(得分:0)

userInput= [[UITextField alloc] initWithFrame:CGRectMake(10, 50, 200, 30)]
userInput.keyboardType= UIKeyboardTypeNumberPad;
userInput.returnKeyType= UIReturnKeyDone;
userInput.textColor=[ UIColor redColor];
userInput.clearButtonMode= UITextFieldViewModeWhileEditing;
userInput.delegate = self;

您可以设置框架并添加以下属性(在View中可见文本框架框,否则在视图中不可见)。

  userInput.borderStyle = UITextBorderStyleRoundedRect;
 [self.view addSubview:userInput];

我希望它会对你有所帮助。