Blame client/iOS/Views/EditSecretTextTableViewCell.m

Packit Service fa4841
/*
Packit Service fa4841
 Custom table cell with secret edit text field
Packit Service bb5c11
 
Packit Service fa4841
 Copyright 2013 Thincast Technologies GmbH, Author: Martin Fleisz
Packit Service bb5c11
 
Packit Service bb5c11
 This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. 
Packit Service bb5c11
 If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
Packit Service fa4841
 */
Packit Service fa4841
Packit Service fa4841
#import "EditSecretTextTableViewCell.h"
Packit Service fa4841
Packit Service fa4841
@implementation EditSecretTextTableViewCell
Packit Service fa4841
Packit Service fa4841
@synthesize label = _label, textfield = _textfield;
Packit Service fa4841
Packit Service fa4841
- (void)awakeFromNib
Packit Service fa4841
{
Packit Service bb5c11
    [super awakeFromNib];
Packit Service bb5c11
    [_unhide_button setTitle:NSLocalizedString(@"Unhide", @"Button title 'Unhide'") forState:UIControlStateNormal];
Packit Service bb5c11
    [_unhide_button addTarget:self action:@selector(togglePasswordMode:) forControlEvents:UIControlEventTouchUpInside];     
Packit Service fa4841
}
Packit Service fa4841
Packit Service fa4841
- (void)setEnabled:(BOOL)enabled
Packit Service fa4841
{
Packit Service bb5c11
    [_label setEnabled:enabled];
Packit Service bb5c11
    [_textfield setEnabled:enabled];
Packit Service bb5c11
    [_unhide_button setEnabled:enabled];
Packit Service fa4841
}
Packit Service fa4841
Packit Service fa4841
#pragma mark - action handlers
Packit Service fa4841
- (void)togglePasswordMode:(id)sender
Packit Service fa4841
{
Packit Service bb5c11
    BOOL isSecure = [_textfield isSecureTextEntry];
Packit Service bb5c11
Packit Service bb5c11
    if (isSecure)
Packit Service bb5c11
    {
Packit Service bb5c11
        [_unhide_button setTitle:NSLocalizedString(@"Hide", @"Button title 'Hide'") forState:UIControlStateNormal];
Packit Service bb5c11
        [_textfield setSecureTextEntry:NO];        
Packit Service bb5c11
    }
Packit Service bb5c11
    else
Packit Service bb5c11
    {
Packit Service bb5c11
        BOOL first_responder = [_textfield isFirstResponder];
Packit Service bb5c11
        // little trick to make non-secure to secure transition working - this seems to be an ios bug:
Packit Service bb5c11
        // http://stackoverflow.com/questions/6710019/uitextfield-securetextentry-works-going-from-yes-to-no-but-changing-back-to-y
Packit Service bb5c11
        [_textfield setEnabled:NO];   
Packit Service bb5c11
        [_unhide_button setTitle:NSLocalizedString(@"Unhide", @"Button title 'Unhide'") forState:UIControlStateNormal];        
Packit Service bb5c11
        [_textfield setSecureTextEntry:YES];        
Packit Service bb5c11
        [_textfield setEnabled:YES];
Packit Service bb5c11
        if (first_responder)
Packit Service bb5c11
            [_textfield becomeFirstResponder];
Packit Service bb5c11
    }
Packit Service fa4841
}
Packit Service fa4841
Packit Service fa4841
@end