One of the missing iOS APIs is a way to find out whom did user send email to. Otherwise MFMailComposeViewController is excellent: easy to setup, easy to launch, easy to use and easy to close. You just have no idea what user was doing with it!
I really needed to know who were email recipients. There are several good reasons for this and I just had one of those. So it was time to do some experimenting!
Showing posts with label UITextField. Show all posts
Showing posts with label UITextField. Show all posts
Monday, February 21, 2011
How to Find MFMailComposeViewController Email Addresses
Labels:
appendString,
didFinishWithResult,
isKindOfClass,
mailComposeController,
MFMailComposeResult,
MFMailComposeViewController,
NSLog,
NSMutableString,
NSString,
stringWithCapacity,
UITextField,
UIView
Thursday, October 7, 2010
How to Get Rid of Keyboard with a Tap on Background part2
There was a nice way to remove keyboard by using UITextView, but that has stopped working with iOS4. At least I got such a defect report for beta application. This time I will remove keyboard using UIButton, let's see how long that will work:
Nice, easy, simple, fast - what more can you ask for!
- (IBAction)removeKeyboardOpen your view in Interface Builder, create new custom full screen UIButton to cover everything, select UITextFields and UIButtons (etc.) one by one and "Send to Front" via Layout menu. Connect UIButton "Touch Up Inside" to your callback and that's it.
{
[textField1 resignFirstResponder];
[textField2 resignFirstResponder];
}
Nice, easy, simple, fast - what more can you ask for!
Labels:
interface builder,
iOS4,
iphone,
keyboard,
touch,
UIButton,
UITextField,
UITextView
Tuesday, July 6, 2010
UITextField textFieldShouldBeginEditing called twice in iOS4
When you tap UITextField, you get two textFieldShouldBeginEditing calls. This looks like a bug in initial iOS4 release. Workaround is to use a BOOL flag to decide what you should do with that call:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
if (self.allowEdit)
{
[self askUser];
return NO;
}
return YES;
}
- (void)askUser
{
if (self.alertVisible)
return;
self.alertVisible = YES;
UIAlertView *alert =
[[UIAlertView alloc] initWithTitle:@"Please verify"
message:@"Do you want to edit?"
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"Yes",
nil];
[alert show];
[alert release];
}
- (void)alertView:(UIAlertView *)alertView
clickedButtonAtIndex:(NSInteger)buttonIndex
{
self.alertVisible = NO;
if (buttonIndex == 1)
[self doSomething];
}
The bug will (should) be fixed in some future iOS4 release, so it's more safe to isolate your work-around inside your own routines as much as possible to minimize possible unwanted side-effects.
Labels:
BOOL,
iOS4,
iphone,
UIAlertView,
UITextField
Monday, April 26, 2010
How to Get Rid of Keyboard with a Tap on Background
There is a screen with a couple of UITextFields and UIButtons. When user taps on UITextField, keyboard popups. Very nice of iPhone SDK to provide such a feature! Each UITextField and UIButton is a clickable object with easy callbacks.
But how do you get rid of keyboard?
Should you have a special "Please hide keyboard" button or tap into accelerometer to notice when user gets desperate enough to start shaking the device? There's an easier way...
Add a full-screen empty non-editable UITextView over the whole screen. Select each clickable object e.g. UITextField, UIButton or other UITextViews and use Interface Builder menu item Layout - Send to Front to place them on top of your full-screen UITextField.
When user clicks on anywhere except your clickable objects, keyboard disappears. What a relief!
Please note that, if you leave any non-clickable objects e.g. UILabel on top of your full-screen UITextView, clicking on those spots will not hide keyboard.
But how do you get rid of keyboard?
Should you have a special "Please hide keyboard" button or tap into accelerometer to notice when user gets desperate enough to start shaking the device? There's an easier way...
Add a full-screen empty non-editable UITextView over the whole screen. Select each clickable object e.g. UITextField, UIButton or other UITextViews and use Interface Builder menu item Layout - Send to Front to place them on top of your full-screen UITextField.
When user clicks on anywhere except your clickable objects, keyboard disappears. What a relief!
Please note that, if you leave any non-clickable objects e.g. UILabel on top of your full-screen UITextView, clicking on those spots will not hide keyboard.
Labels:
accelerometer,
interface builder,
iphone,
keyboard,
touch,
UIButton,
UILabel,
UITextField,
UITextView
Subscribe to:
Posts (Atom)