UIActionSheet中加入UITextField,键盘无法输入的问题
刚开始做IOS移动开发,遇到一些问题,希望大牛们来积极解答,主要问题就是我在UIActionSheet中加入了一个UITextField控件,点击控件的时候,可以弹出键盘,并且点击[X]键也可以删除UITextField中的内容,但是无法输入内容,网上看了一些解答主要是设置KeyWindow,代码中已经标出来,但是没有效果,还有一个小问题,就是我设置了UIActionSheet的frame之后,也没效果,代码中也标出了,下面贴上代码
.h文件
.m文件
.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
...全文
相关推荐
IOS应用源码Demo-弹出框帐号密码输入效果-毕设学习.zip
前两年IOS应用源码-主要是用于毕业设计学习的。
ios-自定义弹出视图输入框.zip
自定义输入提示框
iOS 系统三种弹框的封装
三种弹框的封装,一个方法调用三种弹框,分别调用(UIActionSheet,UIAlertController,添加输入框)
ios-弹框-文本输入.zip
弹框,文本输入
IOS下自定义下拉菜单的实现
IOS下没有自带的下拉菜单需要自己去实现。主要结合textFieldView、pickerView、toolBar来制作一个菜单。下拉菜单对象是继承textFieldView对象,并且实现pickerView的滚动、选择数据的协议。在pickerView中选择完数据之后,在toolBar中点击取消和确定,用来关闭pickerView,并把数据显示到textField中去。


