xcode,ios8,uitoolbar , Move UIToolbar with keyboard iOS8


Move UIToolbar with keyboard iOS8

Question:

Tag: xcode,ios8,uitoolbar

I have a UIToolbar at the bottom of my ViewController that is inherited from the self.navigationController. I show it in my ViewController in the viewWillAppear: method using this code:

[self.navigationController setToolbarHidden:NO animated:NO];
self.navigationController.toolbar.backgroundColor = [UIColor blackColor];
self.navigationController.toolbar.tintColor = [UIColor blackColor];
self.navigationController.toolbar.barStyle = UIBarStyleBlackOpaque;

After that, my ViewController has both programmatically added an UITextView and an UIButton that will allow the user to add comments to the ViewController, which is in fact, a UITableViewController. I would like the entire UIToolbar to move up to the very top of the keyboard whenever my UITextView has begun editing.

To accomplish this, I have A)

-Added the following observer's to my ViewController in the viewDidLoad: method

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(keyboardWillShow:)
                                             name:UIKeyboardWillShowNotification
                                           object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(keyboardWillHide:)
                                             name:UIKeyboardWillHideNotification
                                           object:nil];

And B)

-Added these following methods to control the repositioning of the navigationController's inherent UIToolbar .

- (void)keyboardWillShow:(NSNotification *)aNotification
{
    NSDictionary* keyboardInfo = [aNotification userInfo];
    NSValue* keyboardFrameEnd = [keyboardInfo valueForKey:UIKeyboardFrameEndUserInfoKey];
    CGRect keyboardFrameEndRect = [keyboardFrameEnd CGRectValue];

    // the keyboard is showing so resize the table's height
    NSTimeInterval animationDuration =
    [[[aNotification userInfo] objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];
    CGRect frame = self.view.frame;  //self.view.frame
    self.navigationController.toolbar = CGRectMake(self.navigationController.toolbar.frame.origin.x,
                                                   self.navigationController.toolbar.frame.origin.y + 10,
                                                   self.navigationController.toolbar.frame.size.width,
                                                   self.navigationController.toolbar.frame.size.height);
    [UIView beginAnimations:@"ResizeForKeyboard" context:nil];
    [UIView setAnimationDuration:animationDuration];
    self.view.frame = frame;
    [UIView commitAnimations];
}

- (void)keyboardWillHide:(NSNotification *)aNotification
{
    NSDictionary* keyboardInfo = [aNotification userInfo];
    NSValue* keyboardFrameEnd = [keyboardInfo valueForKey:UIKeyboardFrameEndUserInfoKey];
    CGRect keyboardFrameEndRect = [keyboardFrameEnd CGRectValue];

    // the keyboard is hiding reset the table's height
    NSTimeInterval animationDuration =
    [[[aNotification userInfo] objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];
    CGRect frame = self.view.frame;
    frame.origin.y += self.navigationController.toolbar.frame.size.height;
    [UIView beginAnimations:@"ResizeForKeyboard" context:nil];
    [UIView setAnimationDuration:animationDuration];
    self.view.frame = frame;
    [UIView commitAnimations];
}

I've have tried all sorts of methods for trying to get this to work and I am finding this methodology to be the simplest for my application. I'm getting an error:

Assignment to read-only property

on this line:

self.navigationController.toolbar = CGRectMake(self.navigationController.toolbar.frame.origin.x,
                                               self.navigationController.toolbar.frame.origin.y + 10,
                                               self.navigationController.toolbar.frame.size.width,
                                               self.navigationController.toolbar.frame.size.height);

in the keyboardWillShow: method. It appears that I cannot change the position of the navigationController's inherent toolbar, does this mean that I will need to create my UIToolbar programmatically?

Also, if possible, how can I simply make this code achieve my goal without complicating things and making a programmatic toolbar, I'd rather stick with the inherent toolbar. Thanks.


Answer:

First:

self.view do not have the toolbar, you have to move your toolbar separately..

Second:

self.navigationController.toolbar = CGRectMake..

this is wrong, self.navigationController.toolbar.frame = CGRectMake.. is the correct way.

Third:

Using self.navigationController.toolbar.frame.origin.y - keyboardFrame.size.height +self.navigationController.toolbar.frame.size.height i think you have to correctly calculate the frame of the self.navigationController.toolbar based from the height of the keyboard, and animate it..

[UIView beginAnimations:@"ResizeForKeyboard" context:nil];
[UIView setAnimationDuration:animationDuration];

    [self.navigationController.toolbar setFrame:CGRectMake(self.navigationController.toolbar.frame.origin.x,
                                                   self.navigationController.toolbar.frame.origin.y - YourKeyboardFrame.size.height,
                                                   self.navigationController.toolbar.frame.size.width,
                                                   self.navigationController.toolbar.frame.size.height)];

[UIView commitAnimations];

And another option is using UITextFields -inputAccessoryView (if you're working with UITextField) if you have your own toolbar(made programmatically/customed)..


Related:


PFUser not unwrapped - swift


ios,xcode,swift
I'm beginning to learn swift with parse and i've run into this error: "Value of optional type 'PFUser?' not unwrapped; did you mean to use '!' or '?' I can't seem to get it to work... PFFacebookUtils.logInWithPermissions(["public_profile", "user_about_me", "user_birthday"], block: { user, error in if user == nil { println("the...

How to always show debug window in XCode6


xcode,xcode6
I'm having trouble keeping my debug window open in XCode6. Every time I run the code the debug window disappears. I then have to press CMD SHIFT Y to show it again or use the upper right window icon. How do I make the debugger window stay at all times?

Fatal error when unwrapping CLLocation Location Coordinate


ios,iphone,swift,ios8,optional
I currently have a test application to teach myself Core Location. It is an app with a button which will either show your location when you press a button, or an alert when location services are off. I get a fatal error (unexpectedly found nil when unwrapping option value) When...

Switch between views using a Tabbar


ios,xcode,swift,ios8
I have an iOS application with a Tab Bar, and two subview. My first view is a Table View. So, I want to switch to the second view when I click on a cell of the first view, and keep the TabBar visible. When I do that using "Show" segue...

How to disable the Copy/Hide feature in UIImagePickerController when long pressing a image …?


ios,swift,ios8,uiimagepickercontroller,ios8.3
- Actually am using UIImagePickerController for my usecase,and if i long press any picture ,it shows Copy/Hide option (as shown in the sample image) - I dont want the Copy/Hide feature. Guide me with some suggestions if u too have encountered :)... Thanks in advance...iOS Geeks...PLZ refer my code snippet...

Swift error: Could not find an overload for '<' that accepts the supplied arguments


ios,xcode,swift
if (password.utf16 > 5) { var alert = UIAlertView(title: "Invalid", message: "Password must be greater then 5", delegate: self, cancelButtonTitle: "OK") alert.show() } i used the code as above and i got the error message : Could not find an overload for '<' that accepts the supplied arguments. may i...

Turn a switch Off or On on the basis of another switch state


ios,xcode,uiswitch
How can I turn a switch off inside a different switch? Here's an example - When the isMale switch is turned on, turn off the isFemale switch. - (IBAction)isMale:(id)sender { if ([sender isOn]) { //TURN isFemale SWITCH OFF } else { ... } } and - (IBAction)isFemale:(id)sender { if ([sender...

Xcode + AWS Integration Apple Mach-O Linker Error


ios,xcode,amazon-web-services
I have a very simple Xcode project that I started and am now trying to integrate the Amazon Web Service (AWS) SDK into my project. I followed the instructions posted on their instruction page and everything looks good EXCEPT that I've got the following output... duplicate symbol _OBJC_CLASS_$_XMLDictionaryParser in: /Volumes/Macintosh...

type casting in objective-c, (NSInteger) VS. integerValue


ios,xcode,casting
I don't very understand about the diference between (NSInteger)aNumberValue and [aNumberValue integerValue], then do some test. For example, here is a response data from server: You can see it's an int but the value is hold by NSNumber. I retrieve the data by writting NSInteger count = (NSInteger) dic[@"count"];, and...

Xcode UIWebView not changing page with changed URL


ios,objective-c,xcode,uiwebview
I'm automatically generating a NSURL based on the distance of a pan gesture on the screen (long story...). Anyways, I'm having no problem generating the URL. The URL dynamically changes, and then I have an NSTimer that repeats every second which tells a UIWebView to reload with the new URL....

Put Swipe Gesture over UIWebView to Get Scroll Direction in IOS


ios,xcode,scroll,uiwebview,swipe
I want to get the scroll direction in webView. I read the code about getting scroll direction here. -(void)userDidScrollWebView:(id)scrollPoint{ // NSLog(@"scrolled:::"); NSString *x1 = [webView stringByEvaluatingJavaScriptFromString: @"scrollX"]; NSString *y1 = [webView stringByEvaluatingJavaScriptFromString: @"scrollY"]; NSLog(@"scroll x=%@ y=%@", x1,y1); if ([y1 isEqualToString: @"0"]) { NSLog(@"RELAOD ME"); } } I have 2 Questions...

Getting video from Asset Catalog using On Demand ressources


ios,xcode,xcode7,ios9,asset-catalog
I attributed to my .mp4 video the "tokyo" tag for example, and set it as installed during the app installation. Now before I was using a Path to get it from my resources, now it's different because it's located on the Asset Catalog. After found documentations, I tried something like...

Read plist inside ~/Library/Preferences/


objective-c,xcode,osx
I'm trying to access in ~/Library/Preferences/ but my code doesn't work. NSString *resPath = @"~/Library/Preferences/"; NSError *error = nil; NSArray *filenames = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:resPath error:&error]; if (!error) { for (NSString * filename in filenames) { NSLog(@"%@", filename); } } Maybe I should ask for some permission.. Any idea?...

Running app from console gets CodeSign error: code signing is required for product type 'Application' in SDK 'iOS 8.1'


xcode,xctool
I am trying to run an iOS app from the console executing the following command: xctool/xctool.sh -workspace Supermaxi.xcworkspace -scheme Supermaxi build and I am getting this response [Info] Loading settings for scheme 'Supermaxi' ... (11036 ms) === BUILD === xcodebuild build Supermaxi Pods / Pods-FunctionalTests-KIF (Debug) ✓ Check dependencies (379...

SKEmitterNode particles lag at start


ios,xcode,swift,particles,skemitternode
I'm playing around with SKEmitterNode in my own little game. I'm shooting a cannon ball and when the ball hits one of the boxes in the scene, the box gets destroyed and a particle effect with a simple texture "BOOM" is created to make a transition when the box disappears....

canEvaluatePolicy Extra argument 'error' in call Swift Xcode 7


ios,xcode,ios8,xcode7
I work with Xcode 7 with swift and I would use the Touch Id. Only I have a error when I use canEvaluatePolicy. I understand my error, I call an argument too. Only if I do not call, it makes me a error because I did not manage my error...

How do you work with views in MainMenu.xib?


objective-c,xcode,osx,cocoa
I'm coming over from iOS development and I can't figure out this basic thing: if I open MainMenu.xib in Interface Builder and I drag a button onto the main window's view, what class should I connect that button's action to -- the App Delegate? If I want to add a...

Swift 2 : NSData(contentsOfURL:url) returning nil


ios,json,xcode,foundation,swift2
I have a webpage address which contains a JSON file. I'm trying to access the JSON file as NSDictionary in Swift 2. Every time I call NSData(contentsOfURL:url!) where url is type of NSURL?, it returns nil. I'm using Xcode 7 Beta, and the project was first made in Xcode 6....

Transferring an Xcode project to another computer with all files/frameworks


ios,xcode,frameworks,transfer,projects
I am trying to copy over my Xcode project from one computer to another but it seems to lose frameworks and the locations for the images although i copied those too. PS I am using xcode and coding an app with a friend. Is there a useful source that can...

How to use existing SQLite database in swift?


ios,database,xcode,sqlite,swift
I know there are some resources available for this but none of them clearly show the way how to do it properly. I have already populated .sqlite database (MTrader.db) and i want to connect it to my swift project and load the data from the database into spinner. I tried...

TableViewCell overlaps text


ios,xcode,swift,uitableview,overlap
I'm having a problem with my TableViewCell I have two type of cell in my storyboard. when i scroll, the text overlaps in some cells. I Try everything but I do not know how else to do. thank you very much for the help public func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath:...

How can I display the time offset (years, months, weeks, …) from two dates at my labels?


ios,xcode,swift
I am getting Use of unresolved identifier 'self' in my app. After reading this link, I wrapped the code in a class. Note: I am using an extension I got from this answer at S.O. class SetDate { var seconds = date2.secondsFrom(date1) var minutes = date2.minutesFrom(date1) var hours = date2.hoursFrom(date1)...

Coco2dx - Changing To Background Image


ios,iphone,xcode,xcode6,ios-simulator
I need someone's help. Actually I have no idea what to replace to get a custom background image. I'm just can't do it anymore. -(id) init { // always call "super" init // Apple recommends to re-assign "self" with the "super's" return value if( (self=[super initWithColor:ccc4(219,31,94, 999)]) ) { ws=[[CCDirector...

Swift timer in milliseconds


xcode,swift
I want to change the timer every millisecond but it doesnt work as expected. NSTimer.scheduledTimerWithTimeInterval(0.001, target: self, selector: Selector("advanceTimer:"), userInfo: nil, repeats: true); func advanceTimer(timer: NSTimer){ self.time += 0.001; let milliseconds = self.time * 100; let remaingMilliseconds = Int((milliseconds % 1000) / 10); let seconds = Int((milliseconds / 1000) %...

Why label still append 0 once press clear button “C”?


xcode,swift
I am making calculator in swift. Functioning very well so far except the display which is UILabel. I want to get clear out display by pressing C button, for that I did this way inside clear() I wrote history.text ="\0" this is caused append 0 next time when press new...

control may reach end of non-void function xcode


c++,xcode,visual-studio-2012
I have a third party library code segment which has the following structure: class A; A func() { if(...) { return A(...); } else if(...) { return A(...); } else { LOG(...); } } And it gives the error "control may reach end of non-void function" in Xcode. The same...

Can't figure out coder aDecoder: NSCoder


ios,xcode,swift
I'm making an app for archiving books, I'm at the point of hooking up a button to save the data, but I can't get past the initialisation. Here is the error Xcode is giving me : Property 'self.bookStore' not initialised at super.init call. And here is my code : import...

New warnings in iOS9


xcode,ios9
I have this new warning about the Google Framework in my app: (null): URGENT: all bitcode will be dropped because '/Users/myname/Library/Mobile Documents/com~apple~CloudDocs/foldername/appname/GoogleMobileAds.framework/GoogleMobileAds(GADSlot+AdEvents.o)' was built without bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. Note:...

UIView within a container view not showing


ios,xcode,swift
I couldn't get the blue rectangle view to show. IT is currently the subview of the grey view and has vertical/horizontal constraints. I don't have enough "reputations" to post images so heres the link to the screenshot: http://imgur.com/gallery/KCFA1O6/new Thanks....

Xcode - Colours look different but should be the same


ios,xcode,hex,uicolor
In my app, I am using the following color: #3D6D86 It is set to be a background color on a view controller and also to be the color for the navigation bar on a different view controller. However the problem is that the color appears different. I converted the hex...

Bluemix authentication ios8 with google and facebook


facebook,authentication,ios8,bluemix,google-authentication
I am trying to implement two types of authentication from an iOS8 device in the bluemix platform. I succeeded in adding one type of authentication: google. I am using a ADVANCED MOBILE ACCESS module, and I am at the User Authentication part. It looks from a dashboard like I can...

UITapGestureRecognizer sender is the gesture, not the ui object


ios,xcode,swift,uigesturerecognizer
I've got a button called and I gave it a UIGestureRecognizer so that an IBAction is only run when the button is long pressed. You do this by adding a UILongPressGestureRecognizer to the button iteself. Then you control drag that gesture recognizer to a function like this: @IBAction func handleGesture(sender:...

Auto Rotation iOS 8 Navigation Controller


objective-c,iphone,ios8,uinavigationcontroller,autorotate
I have certain viewControllers which are managed by a UINavigationController (push and pop). I want to restrict different viewControllers to different orientations like the first one should be only in Portrait, second in portrait, third in landscape and fourth can be portrait and landscape both. I set a ViewController on...

When trying to get dynamically created UILabel to wrap, text disappears


xcode,swift,word-wrap,cgrect,sizetofit
I'm trying to display some description text that varies from a couple of words to a hundred words. I've set my UILabel to wrap to compensate using the code below descText.frame = CGRect(x: 115, y: 160, width: 465, height: 21) descText.textAlignment = NSTextAlignment.Left descText.numberOfLines = 0 descText.lineBreakMode = NSLineBreakMode.ByWordWrapping descText.sizeToFit()...

Cannot invoke 'canEvaluatePolicy' with an argument list of type '(LAPolicy)' Swift2.0 Xcode 7


ios,swift,ios8
I have a problem with canEvaluatePolicy function. I have declared this function like this : func canEvaluatePolicy(policy: LAPolicy) { do { try authenticationObject.canEvaluatePolicy(.DeviceOwnerAuthenticationWithBiometrics) } catch let error as NSError { print("Error: \(error.domain)") } } But when I want to use it like this: if authenticationObject.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics) { I have an error:...

AFNetworking file upload


ios,iphone,xcode
I'm trying to upload file with AFNetworking and it is working with iOS Simulator but not working Real devices, i tried 2 different way but same. Can some one help me to solve this issue please Thank you very much. this is first code NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask,...

Objective C - bold and change string text size for drawing text onto pdf


objective-c,xcode,pdf,size,bold
I've created a .xib file with a uiview solely for the pdf document that I have created. I've primarily followed this tutorial for code: http://www.raywenderlich.com/6818/how-to-create-a-pdf-with-quartz-2d-in-ios-5-tutorial-part-2 From the above, I can't edit labels (plain or attributed) from the interface builder as even after changing size, it doesn't apply when the app...

iOS : pod update (unable to find the utility “xcode-select”)


ios,xcode,osx,xcode6,cocoapods
xI am a new iOS developer. Recently when I ran "pod update" sth just went wrong see the detail in the following: (unable to find the utility "xcode-select") bash-3.2$ pod install Analyzing dependencies sh: line 1: 4936 Abort trap: 6 /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -sdk / -find xcode-select 2> /dev/null xcrun: error: unable...

Build error after I localized Info.plist


ios,objective-c,xcode,swift,localization
I localized Info.plist : And I got this build error : error: could not read data from '/Users/cherif/Apps/Wesh/Info.plist': The file “Info.plist” couldn’t be opened because there is no such file. Actually there are now two Info.plist files : fr.lproj/Info.plist Base.lproj/Info.plist How to localize the Info.plist path ?...

change Auto Layout dynamically


ios,iphone,xcode,storyboard,autolayout
I have to show 3 Labels like LABEL1 | LABEL2 | Label3 //Horizontally I want these 3labels width are equally divided according to Screen size width How can I achieve this with nib file directly? Thanks Question 2 Label1 | Label2 | Lable3 //All Labels widths are equally //All Labels...

UIWebView path depends on previous pressed button Xcode


ios,objective-c,iphone,xcode,uiviewcontroller
I have a ViewController (A), containing n buttons. all buttons map to other ViewController(B) containing a WebView to show a different PDF. Instead of creating n ViewController, I would know how to change path according to which button was pressed. my wrong tries: 1- use tags of buttons in ClassB...

Chance of a conditional occurring in Swift: Xcode


xcode,swift,if-statement,conditional,percentage
I am quite new to Xcode and swift so sorry if this is a bad description. Is there a way that there is a chance of your conditional occurring so instead of it happening 100% of the time when the conditions are met, it only happens 50% of the time...

AutoLayout complains about constraints for 2 UITextFields with no borders


ios,xcode,swift,autolayout,nslayoutconstraint
I am trying to build my login view that has only 2 TextFields, and 2 buttons. I am applying the "Add Missing Constraints" property so that Xcode applies the corresponding constraints to all the elements in my LoginViewController in the storyboard. I am restricting my app to run only in...

Command-Line Testing Using Cocoa Touch


xcode,cocoa,kif
I have developed several test for an application, and I would like to run this application using the command-line. I have read this tutorial; however, I haven't been able to run them. When executing the following command: xcodebuild test -project MyApplication.xcodeproj -scheme MyApplication -destination 'platform=iOS Simulator,name=iPhone 6' I am getting...

Using the device simulator for iOS 8 with Xcode 7


ios8,xcode7,ios9
I thinking about port my App to Swift 2 and Xcode 7. But the device simulator only targets iOS 9 and I see no way to download iOS 8. I have parallel Xcode 6.3 installed. Is there any way to test and debug my app under iOS 8 with the...

How do I make is so the entered number is mulitplied by the slider number


xcode,swift
So, I've created an iOS app that multiplies the entered number by the number that's in the slider. Please forgive my ignorance, but as you can tell, I'm just learning. The section where the user enters their number is the multiplier text field. I tried to convert it to an...

Xcode referencing old copies of files


ios,objective-c,xcode,file-management
Changes I've been making to code in certain files are being ignored by Xcode. I've traced it to the fact that Xcode is keeping its own older version of the code files somehow... these older/duplicate files are not shown anywhere in the Finder window for the project's folder and persist...

How can I fix crash when tap to select row after scrolling the tableview?


ios,xcode,swift,uitableview,tableviewcell
I have a table view like this: when the user tap one row, I want uncheck the last row and check the selected row. So I wrote my code like this: (for example my lastselected = 0) func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { var lastIndexPath:NSIndexPath = NSIndexPath(forRow: lastSelected, inSection:...

create a popup window with just a textview/string and a button SWIFT ios 8


iphone,swift,ios8,popup,xcode6
I am very new to ios 8 and swift but I have not found a way to make a simple popup window whenever a button is pushed. I payed for tutorials and they still don't cover it. All i would like is for when the user pushes a button (the...