UITextField не работает - PullRequest
       3

UITextField не работает

0 голосов
/ 27 июня 2011

я новичок в Objective-C программировании, так что извините, если это глупый вопрос, но я внимательно посмотрел и не смог найти ошибку, ps: английский не мой родной язык, поэтому ключевые слова программирования могут быть непреднамеренно использованы

Я настроил поле txt и определил некоторые его свойства, такие как клавиатура с цифровой клавиатурой и прочее, проблема в том, что когда я запускаю его на симуляторе, ничего не происходит, вызывается клавиатура по умолчанию.

Я просто пытаюсь сделать что-то простое, чтобы получить это в моей голове, в моем .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 ]

1 голос
/ 02 апреля 2012

Думаю, вам нужно установить рамку для UITextField следующим образом ...

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

в вашем - (UITextField *) метод userInput, это у вас не отображается ..

0 голосов
/ 02 апреля 2012
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;

Вы можете просто установить фрейм и добавить свойство ниже (чтобы видеть текстовое поле в представлении, в противном случае оно не будет видно в представлении).

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

Надеюсь, это будет полезно для вас.

0 голосов
/ 27 июня 2011

Несмотря на то, что это тегированный iPhone, вы случайно имитируете iPad?Если так, я столкнулся с этим.IPad не будет отображать клавиатуру для цифровой клавиатуры.

0 голосов
/ 27 июня 2011

Ну, мало что туманно, но ...

Вы получаете значение текстового поля, используя,

int nInput = [[userInput text] intValue];

Если вы не получите правильное значение, тогда nInput будет равно нулю. Это потому, что userInput должно быть nil. Вы можете убедиться в этом, зарегистрировав его, добавив NSLog(@"%@", userInput); перед строкой выше.

Независимо от того, какое значение напечатано, похоже, что на ваше текстовое поле не ссылается userInput.

Так как вы делаете все это программно, вам нужно будет добавить свой userInput в иерархию представления, выполнив это,

[self.view addSubview:self.userInput];

Важным здесь является использование средства доступа к свойствам, так как в противном случае userInput будет nil, если вы не обращались к нему с помощью self.userInput ранее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...