Пробовали [[self jotNotes] resignFirstResponder];
, пробовали [self endEditing:YES];
Итак, у меня есть NoteViewController, который наследует UIViewController и пытается реализовать делегат следующим образом.
@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
а затем в mainView у меня есть куча подвидов, которые в основном представляют собой квадрат с UITextView внутри.
класс квадратов такой, и именно из них я пытаюсь отключить клавиатуру, здесь я устанавливаю делегата, метод отклонения KB и код UITextView. В настоящее время он будет регистрировать мой метод клавиатуры при нажатии кнопки «Готово», но клавиатура все еще присутствует. Был бы очень признателен, если бы кто-нибудь помог мне понять, почему
@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];
}