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

不同的Me 2013-09-02 05:30:06
刚开始做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
...全文
385 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
进击的马喽 2013-11-19
  • 打赏
  • 举报
回复
我也遇到了了,解决了么
不同的Me 2013-09-07
  • 打赏
  • 举报
回复
引用 2 楼 songhongri 的回复:
断点 看UITextView的代理进入了嘛?
进断点了,就是有注释的哪行//网上很多说不是keywindow的问题,但是我改了还是无效,求高手帮忙解答,不胜感激
hongrisong 2013-09-07
  • 打赏
  • 举报
回复
断点 看UITextView的代理进入了嘛?
不同的Me 2013-09-05
  • 打赏
  • 举报
回复
好几天了,有没有人遇到同样的问题啊,求讨论

29,049

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧