Blob Blame History Raw
/*
 Custom table cell with secret edit text field

 Copyright 2013 Thincast Technologies GmbH, Author: Martin Fleisz

 This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
 If a copy of the MPL was not distributed with this file, You can obtain one at
 http://mozilla.org/MPL/2.0/.
 */

#import "EditSecretTextTableViewCell.h"

@implementation EditSecretTextTableViewCell

@synthesize label = _label, textfield = _textfield;

- (void)awakeFromNib
{
	[super awakeFromNib];
	[_unhide_button setTitle:NSLocalizedString(@"Unhide", @"Button title 'Unhide'")
	                forState:UIControlStateNormal];
	[_unhide_button addTarget:self
	                   action:@selector(togglePasswordMode:)
	         forControlEvents:UIControlEventTouchUpInside];
}

- (void)setEnabled:(BOOL)enabled
{
	[_label setEnabled:enabled];
	[_textfield setEnabled:enabled];
	[_unhide_button setEnabled:enabled];
}

#pragma mark - action handlers
- (void)togglePasswordMode:(id)sender
{
	BOOL isSecure = [_textfield isSecureTextEntry];

	if (isSecure)
	{
		[_unhide_button setTitle:NSLocalizedString(@"Hide", @"Button title 'Hide'")
		                forState:UIControlStateNormal];
		[_textfield setSecureTextEntry:NO];
	}
	else
	{
		BOOL first_responder = [_textfield isFirstResponder];
		// little trick to make non-secure to secure transition working - this seems to be an ios
		// bug:
		// http://stackoverflow.com/questions/6710019/uitextfield-securetextentry-works-going-from-yes-to-no-but-changing-back-to-y
		[_textfield setEnabled:NO];
		[_unhide_button setTitle:NSLocalizedString(@"Unhide", @"Button title 'Unhide'")
		                forState:UIControlStateNormal];
		[_textfield setSecureTextEntry:YES];
		[_textfield setEnabled:YES];
		if (first_responder)
			[_textfield becomeFirstResponder];
	}
}

@end