UIActionSheet中加入UITextField,键盘无法输入的问题

不同的Me 不同的Me 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
刚开始做IOS移动开发,遇到一些问题,希望大牛们来积极解答,主要问题就是我在UIActionSheet中加入了一个UITextField控件,点击控件的时候,可以弹出键盘,并且点击[X]键也可以删除UITextField中的内容,但是无法输入内容,网上看了一些解答主要是设置KeyWindow,代码中已经标出来,但是没有效果,还有一个小问题,就是我设置了UIActionSheet的frame之后,也没效果,代码中也标出了,下面贴上代码
.h文件

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController<UIActionSheetDelegate, UITextFieldDelegate>
{
UIActionSheet * sheet;
}

@end



.m文件

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

-(void)btnClicked:(id)sender
{
UIButton * btn = (UIButton*)sender;
[sheet dismissWithClickedButtonIndex:btn.tag animated:YES];
}

- (void)buttonClicked:(id)sender
{
sheet = [[UIActionSheet alloc] initWithTitle:@"爱情宣言\n\n\n\n\n\n\n\n\n" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles: nil];

sheet.frame = CGRectMake(0, 260, 320, 480); //不起作用,求解释?
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(0, 100, 320, 40)];
textField.backgroundColor = [UIColor whiteColor];
textField.text = @"我爱景妃";
textField.textAlignment = NSTextAlignmentCenter;
textField.delegate = self;
[sheet addSubview:textField];
[textField release];

UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(140, 150, 80, 40)];
[btn setTitle:@"永不言弃" forState:UIControlStateNormal];
btn.tag = 100;
[btn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside];
[sheet addSubview:btn];
[btn release];

[sheet showInView:self.view];
[sheet release];
}

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

UIButton * btn1 = [[UIButton alloc] initWithFrame:CGRectMake(100, 200, 80, 40)];
[btn1 setTitle:@"Click Me" forState:UIControlStateNormal];
[btn1 addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
btn1.backgroundColor = [UIColor blackColor];
[self.view addSubview:btn1];

}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

- (void)dealloc
{
[sheet release];
[super dealloc];
}

#pragma mark action sheet delegate method


#pragma mark textfield delegate method
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
sheet.frame = CGRectMake(0, 100, 320, 480);

if (!textField.window.isKeyWindow) { //网上很多说不是keywindow的问题,但是我改了还是无效,求高手帮忙解答,不胜感激
[textField.window makeKeyAndVisible];
}
}


- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
sheet.frame = CGRectMake(0, 260, 320, 480);
[textField resignFirstResponder];
}

@end
...全文
评论 4
收藏 已收藏
分享
返回顶部
不同的Me
iOS 29,038 成员 12,459 内容