我是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];
是什么让我感到沮丧的是,我在之前的项目中做了同样的事情并且“输入工作”,但现在一切都没有。
和我的财产,因为我没有定义任何东西。
我感谢你的帮助
答案 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];
我希望它会对你有所帮助。