mirror of
https://github.com/HackPlan/IQKeyboardManager.git
synced 2026-06-17 02:25:14 +08:00
- Enhanced demo project and added various examples demonstrating almost all properties of library. - Enhanced library Settings Controller. - Moved some contents of README.md file to other files.
104 lines
2.9 KiB
Objective-C
104 lines
2.9 KiB
Objective-C
//
|
|
// TextViewSpecialCaseViewController.m
|
|
// KeyboardTextFieldDemo
|
|
|
|
#import "TextViewSpecialCaseViewController.h"
|
|
#import "IQKeyboardManager.h"
|
|
|
|
@interface TextViewSpecialCaseViewController ()<UIPopoverPresentationControllerDelegate>
|
|
|
|
@end
|
|
|
|
@implementation TextViewSpecialCaseViewController
|
|
|
|
#pragma mark - View lifecycle
|
|
|
|
- (void)viewDidLoad
|
|
{
|
|
[super viewDidLoad];
|
|
|
|
if (!self.navigationController)
|
|
{
|
|
[buttonPush setHidden:YES];
|
|
[buttonPresent setTitle:@"Dismiss" forState:UIControlStateNormal];
|
|
}
|
|
}
|
|
|
|
-(void)viewWillAppear:(BOOL)animated
|
|
{
|
|
[super viewWillAppear:animated];
|
|
}
|
|
|
|
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
|
|
{
|
|
if([text isEqualToString:@"\n"])
|
|
[textView resignFirstResponder];
|
|
return YES;
|
|
}
|
|
|
|
- (IBAction)presentClicked:(id)sender
|
|
{
|
|
@try {
|
|
if (self.navigationController)
|
|
{
|
|
TextViewSpecialCaseViewController *controller = [[TextViewSpecialCaseViewController alloc] init];
|
|
|
|
[controller setModalTransitionStyle:arc4random()%4];
|
|
|
|
// TransitionStylePartialCurl can only be presented by FullScreen style.
|
|
if (controller.modalTransitionStyle == UIModalTransitionStylePartialCurl)
|
|
controller.modalPresentationStyle = UIModalPresentationFullScreen;
|
|
else
|
|
controller.modalPresentationStyle = arc4random()%4;
|
|
|
|
[self presentViewController:controller animated:YES completion:nil];
|
|
|
|
}
|
|
else
|
|
{
|
|
[self dismissViewControllerAnimated:YES completion:nil];
|
|
}
|
|
}
|
|
@catch (NSException *exception) {
|
|
NSLog(@"Exception:%@",exception);
|
|
}
|
|
@finally {
|
|
|
|
}
|
|
}
|
|
|
|
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
|
|
{
|
|
if ([segue.identifier isEqualToString:@"SettingsNavigationController"])
|
|
{
|
|
segue.destinationViewController.modalPresentationStyle = UIModalPresentationPopover;
|
|
segue.destinationViewController.popoverPresentationController.barButtonItem = sender;
|
|
|
|
CGFloat heightWidth = MAX(CGRectGetWidth([[UIScreen mainScreen] bounds]), CGRectGetHeight([[UIScreen mainScreen] bounds]));
|
|
segue.destinationViewController.preferredContentSize = CGSizeMake(heightWidth, heightWidth);
|
|
segue.destinationViewController.popoverPresentationController.delegate = self;
|
|
}
|
|
}
|
|
|
|
- (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller
|
|
{
|
|
return UIModalPresentationNone;
|
|
}
|
|
|
|
-(void)prepareForPopoverPresentation:(UIPopoverPresentationController *)popoverPresentationController
|
|
{
|
|
[self.view endEditing:YES];
|
|
}
|
|
|
|
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
|
|
{
|
|
return YES;
|
|
}
|
|
|
|
- (BOOL)shouldAutorotate
|
|
{
|
|
return YES;
|
|
}
|
|
|
|
@end
|