62 lines
1.8 KiB
Mathematica
62 lines
1.8 KiB
Mathematica
|
/*
|
||
|
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
|