I am creating textField in UIActionsheet, but I can't input text, can any one has idea about it ????
my coding is as follow
-(void)commentsMethod: (id) sender {
//setup UITextField for the UIActionSheet
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(0, 28, 320, 150)];
//textField.delegate=self;
textField.autocorrectionType = UITextAutocorrectionTypeNo;
[textField setBackgroundColor:[UIColor clearColor]];
[textField setBorderStyle:UITextBorderStyleRoundedRect];
[textField becomeFirstResponder];
//CGRectMake(<#CGFloat x#>, <#CGFloat y#>, <#CGFloat width#>, <#CGFloat height#>)
UIButton *btn = [[UIButton alloc] init];
[btn setFrame:CGRectMake(0, 0, 100, 100)];
[btn setTitle:@"dismiss" forState:UIControlStateNormal];
[btn setBackgroundColor:[UIColor clearColor]];
[btn addTarget:self action:nil forControlEvents:UIControlEventTouchUpInside];
UIActionSheet *myActionSheet;
myActionSheet = [[UIActionSheet alloc] initWithTitle:@"Comments" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil, nil];
myActionSheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;
[myActionSheet showInView:self.view];
myActionSheet.userInteractionEnabled=YES;
[myActionSheet setFrame:CGRectMake(0, 20, 320,600)];
[myActionSheet insertSubview:textField atIndex:0];
[myActionSheet insertSubview:btn atIndex:1];
//[self.myActionSheet dismissWithClickedButtonIndex:0 animated:NO];
//memory management
[textField release];
[myActionSheet release];
}
Hey Veer, There is a slightly different approach that you should be taking here. Here is what I propose.
.h file code
#import <UIKit/UIKit.h>
@interface trialViewController : UIViewController <UIActionSheetDelegate, UITextFieldDelegate> {
UITextField *TextField;
}
-(void) CreateSlideOut;
-(void) removePopUp;
-(void) slidePopup;
@end
.m code
#import "trialViewController.h"
@implementation trialViewController
CGRect backToOriginal;
UIView *popup;
- (void)viewDidLoad {
[self CreateSlideOut];
[self slidePopup];
[super viewDidLoad];
}
-(void) CreateSlideOut
{
CGRect frame=CGRectMake(0, CGRectGetMaxY(self.view.bounds), 320, 480);
backToOriginal=frame;
popup=[[UIView alloc]initWithFrame:frame];
popup.backgroundColor = [UIColor orangeColor];
[self.view addSubview:popup];
}
-(void) slidePopup
{
UIButton *button=[UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame=CGRectMake(60, 190, 200,40);
button.backgroundColor=[UIColor clearColor];
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[button setTitle:@"Dismiss" forState:UIControlStateNormal];
[button addTarget:self action:@selector(DismissClicked:) forControlEvents:UIControlEventTouchUpInside];
TextField = [[UITextField alloc] initWithFrame:CGRectMake(20, 28, 280, 150)];
TextField.delegate=self;
TextField.autocorrectionType = UITextAutocorrectionTypeNo;
[TextField setBackgroundColor:[UIColor clearColor]];
[TextField setBorderStyle:UITextBorderStyleRoundedRect];
[popup addSubview:TextField];
[popup addSubview:button];
CGRect frame=CGRectMake(0, 0, 320, 480);
[UIView beginAnimations:nil context:nil];
[popup setFrame:frame];
[UIView commitAnimations];
}
-(void) removePopUp
{
[UIView beginAnimations:nil context:nil];
[popup setFrame:backToOriginal];
[UIView commitAnimations];
[TextField resignFirstResponder];
}
-(IBAction) DismissClicked : (id) sender
{
[self removePopUp];
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
NSLog(@"in textFieldShouldReturn");
[TextField resignFirstResponder];
return YES;
}
- (void)dealloc {
[super dealloc];
}
@end
Use it and change the background color of the slideout. If you want I can give a codes that customize your UIButtons and create Custom colors for you to be used. Cheers