2017-06-30 3 views
0

Haben [[self jotNotes] resignFirstResponder]; haben [self endEditing:YES]; versucht versuchtBenutzerdefinierte Ansichten entziehen Tastaturen nicht?

So habe ich meine NoteViewController, die UIViewController erbt, und versucht, wie so

@interface NOTEController : UIViewController <UITextViewDelegate> 
@end 

@implementation NOTEController 
-(id)init { 
    self = [super init]; 
    if (self) { 
    // self.delegate = self; //doesnt let me set this, so i assume i do not do that here 
     NOTEControllerView * mainView = [[NOTEControllerView alloc] initWithFrame:[UIScreen mainScreen].bounds]; 
     self.view = mainView; //just a plain custom uiview subclass its boring and not special 
    } 
    return self; 
} 
@end 

und dann in der Hauptansicht der Delegierten zu implementieren, habe ich eine Reihe von Unter -Views, die im Grunde ein Quadrat mit einem UITextView innerhalb sind.

Die Quadrate-Klasse ist so, und sie sind diejenigen, die versuchen, die Tastatur zu verwerfen, Heres, wo ich den Delegaten, die Methode dissidKB und den UITextView-Code festlegen. Derzeit wird meine Tastaturmethode beim Drücken der Fertig-Taste protokolliert, aber die Tastatur ist immer noch vorhanden. schätzen würde wirklich, wenn jemand helfen könnte mich zu verstehen, warum

@interface NOTESubview : UIView <UITextFieldDelegate> 
@property (nonatomic, weak) id<UITextFieldDelegate> delegate; 
-(UITextView *)jotNotes; 
@end 

@implementation NOTESubview 
-(id)initWithFrame:(CGRect)arg1 { 
    self = [super initWithFrame:arg1]; 
    if (self) { 
     self.delegate = self; 
     [self addSubview:[self jotNotes]]; 
    } 
    return self; 
} 
-(UITextView *)jotNotes { 
    UITextView * jotNotes = [[UITextView alloc] initWithFrame:CGRectMake(0, self.frame.size.height/5.7, self.frame.size.width, self.frame.size.height - self.frame.size.height/5.7)]; 
    UIToolbar* keyboardTextViewBar = [[UIToolbar alloc] init]; 
    keyboardTextViewBar.barStyle = UIBarStyleDefault; 
    [keyboardTextViewBar sizeToFit]; 
    UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil]; 
    UIBarButtonItem* doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" 
        style:UIBarButtonItemStylePlain target:self 
        action:@selector(dismissKB:)]; 
    [keyboardTextViewBar setItems:[NSArray arrayWithObjects:flexSpace, doneButton, nil]]; 
    jotNotes.inputAccessoryView = keyboardTextViewBar; 
    jotNotes.delegate = self.delegate; 
    return jotNotes; 
} 
-(void)dismissKB:(UIBarButtonItem *)sender { 
    //this will log, so im not sure why it wont resign the board no matter what i try 
    NSLog(@"keyboard attempted to dismiss by %@", sender); 
    [[self jotNotes] resignFirstResponder]; 
} 

Antwort

0

Ich vermute, dass, wenn die dismissKB Methode aufgerufen wird, es ist eigentlich nicht derjenige, der zur Zeit der Ersthelfer ist.

Es gibt jedoch einen Trick, bei dem Sie die Tastatur einfach von überall in Ihrer App "verwerfen" können. Sie könnten es versuchen will geben:

[[[[UIApplication sharedApplication] delegate] window] endEditing:YES]; 
0

Fügen Sie die folgende Zeile in dem Sie die Tastatur zu schließen versuchen:

[self endEditing:YES]; 
Verwandte Themen