gpt4 book ai didi

uitextfield - 键盘不适用于 uiactionsheet 中的文本字段

转载 作者:行者123 更新时间:2023-12-02 06:43:32 26 4
gpt4 key购买 nike

我在 uiactionsheet 中添加了 textfeld 作为


-(void)showAction {
printf("getting action ready \n");
UIActionSheet *asheet = [[UIActionSheet alloc] initWithTitle:@"New Sheet Name" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles: nil];
[asheet showInView:self.view];
[asheet setFrame:CGRectMake(0, 70, 320,200)];
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(0, 100,200, 25)];
textField.borderStyle= UITextBorderStyleRoundedRect;
[textField becomeFirstResponder];
[textField setKeyboardType:UIKeyboardTypeAlphabet];
[textField setKeyboardAppearance:UIKeyboardAppearanceAlert];
textField.text=@"test" ;
textField.delegate=self;
[asheet insertSubview:textField atIndex:0];
[textField release];
[asheet release];
}

但键盘不适用于此文本字段,但退格键有效。以前,当我一直在使用 ios 3 时,它工作正常,但使用 ios 3.2 iphone 模拟器 4.0 不接受来自键盘的任何输入


- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
printf("\n textFieldShouldBeginEditing\n ");
return YES;
}
这被称为


- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
printf("shouldChangeCharactersInRange %s ",[string UTF8String]);
return YES;
}
然而,此委托(delegate)方法仅在退格时被调用。

最佳答案

就用这种方式对我有用

首先在你的类.h文件中设置UITextFieldDelegate,UIActionSheetDelegate

#define TEXT_FIELD_TAG 9999

#define ACTION_SHEET_TAG 8888

-(IBAction)ForgotPassword:(id)sender{


UIActionsheet *actFollowUp = [[UIActionSheet alloc] initWithTitle:@"Please Enter Email"
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:@"OK"
otherButtonTitles:nil];

actFollowUp.tag=ACTION_SHEET_TAG;

textFieldTime = [[UITextField alloc] initWithFrame:CGRectMake(60.f,320.f, 200.f, 30.f)];
[textFieldTime setBackgroundColor:[UIColor whiteColor]];
textFieldTime.delegate= self;
[textFieldTime setKeyboardType:UIKeyboardTypeAlphabet];
textFieldTime.keyboardAppearance= UIKeyboardAppearanceAlert;
textFieldTime.tag=TEXT_FIELD_TAG;

[actFollowUp addSubview:textFieldTime];

UIWindow* appWindow = [UIApplication sharedApplication].keyWindow;

[actFollowUp showInView:appWindow];
[actFollowUp setFrame:CGRectMake(0.0,200.0, 320.0, 200.0)];

[self performSelector: @selector(acceptInput:) withObject: actFollowUp];

 -(void)acceptInput: (UIActionSheet*)actionSheet
{

UITextField* textField = (UITextField*)[actionSheet viewWithTag:TEXT_FIELD_TAG];

UIWindow* appWindow = [UIApplication sharedApplication].keyWindow;

CGRect frame = textField.frame;

[appWindow insertSubview:textField aboveSubview:actionSheet];

frame.origin.y += 60.0; // move text field to same position as on action sheet

textField.frame = frame;

}

关于uitextfield - 键盘不适用于 uiactionsheet 中的文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4367494/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com