freerdp/client/iOS/Views/EditSecretTextTableViewCell.m

62 lines
1.8 KiB
Objective-C

/*
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