Creating MonoTouch Custom Cells using XCode 4 does not work - xcode

I was used to creating Custom Cells in MonoTouch using Interface Builder but ever since XCode 4 has this integrated I can't seem to get it to work.
Is this a know issue?
Does anyone know of an article that describes how to go about this? I have plenty of books and found articles about how this works in XCode 3 (Interface Builder) but I am looking at how this works in XCode 4 !!
Also, when creating iPad View Controllers in MonoTouch the files seem to be separated (I get an fHeader.cs and a fHeader.xib file) whereas before the fHeader.cs file was 'part of' the xib file (hierarchically below it). Why is this?
I am using Mono 2.10.9 - XCode 4.2 and Monotouch 5.2.11
Thanks

This has a nice tutorial:
http://blog.arcticmill.com/2012/05/uitableview-with-custom-uitableviewcell.html

Check this tutorial:
http://sabonrai.wordpress.com/2009/08/28/monotouch-sample-code-uitableview/
Normally you create a DataSource Delegate and there you override the GetCell function.
In this function you can create your custom cell.

Related

Accessing image from PaintCode in Swift

I'm thinking about buying PaintCode, because I wanna use it in my Swift projects. I downloaded the Trial version. The tutorials at the homepage are only for Objective C, but the explained way (http://www.paintcodeapp.com/documentation/stylekits) doesn't work with Swift.
Any ideas, how I can add the images from PaintCode to my xib file (for example to a toolbar item)? (I have a Cocoa project without Storyboard)
Paintcode works with Swift you just have to change the output.
You can choose iOS/Obj-c , OSX/iOS.
PaintCode works well with Swift. You only have to select the output as pointed by a comment before and export StyleKit to your project.

How to get your custom content drawn in Interface Builder?

I watched the "What's New in Interface Builder" session video and tried to replicate the code that was showed but unfortunately when I assign a view to my custom class which has #IBDesignable I get 2 errors:
Main.storyboard: error: Live Views: Failed to update auto layout status: The bundle “swiftTest” couldn’t be loaded because its executable isn’t loadable.
Main.storyboard: error: Live Views: Failed to render instance of _TtC9swiftTest14ControllerView: The bundle “swiftTest” couldn’t be loaded because its executable isn’t loadable.
Later on in the video I saw that to have Live Views you have to make these steps:
1. Create framework
2. Create class
3. Mark as designable
How do I make the 1st step?
Thanks
As I understand it at the moment (prior to Xcode 6 Beta 3), #IBDesignable will only work from a view declared in a separate framework target.
However, I also struggled to add it because I had no "plus" button as described in various links (because the Hide Project & Target Lists arrow option was toggled off).
So, select your current project target, then just use the xcode menu options:
Editor > Add target...
Then select
Framework & Library > Cocoa Touch Framework etc.
By the way, to test #IBDesignable, this tutorial worked perfectly as a starting point:
http://www.weheartswift.com/make-awesome-ui-components-ios-8-using-swift-xcode-6/
One small but important thing to note in that tutorial (if you follow it onscreen instead of following on to its full github code listing) is that your view class must be prepended/decorated with #IBDesignable, e.g.
class CustomView : UIView {...}
should be
#IBDesignable class CustomView : UIView {...}
You should make new framework as a target for current project and add your live views in this framework. On General tab on main target you will see your framework in Embedded Binaries section.
I had a project with live views working and at one point I also had these error messages. This went away for me when closing XCode and restarting, fwiw.
It is working very well (and easily) for me with Swift in Xcode 6 Beta 5.
I've confirmed that with Xcode 6 Beta 5 I did not need to add any frameworks (for example, Cocoa Touch framework option under frameworks in the dialog that appears when adding a new project target). Nor did I need to add IBDesignable.h to the project. Both seem to be outdated requirements as per the the weheartswift.com write-up linked in the initial answer to the question.
All I needed to do was:
Prefix class definition of my custom Swift class source file
with keyword #IBDesignable
Prefix vars I wanted to show up in IB Attributes Inspector with #IBInspectable (IB recognizes several common variable types).
Then, after assigning my custom component's (UIControl subclass) name to IB's "Class" name file (under Identity Inspector tab, in right pane) replacing "UIView" -- e.g. the class name of the UIView placeholder object I originally dragged onto the IB VC's view -- upon selecting my custom component from the Content View component list in IB, I saw all my custom class' inspectable items show up in the IB Attributes Inspector!! Very cool.
Note: At first XCode would only allow me to prefix one variable with #IBInspectable. It showed errors on subsequent ones. Then, suddenly it seemed to work, and no more problems after that. Not sure if it was a typo or just took Xcode awhile to re-index my project and pre-compile or parse the code.
I code about #IBDesignable & #IBInspectable,
firstly, I got two errors like you,
then, I change the code I wrote,
you can checkout the code from my github
Good Luck.

Core Data in XCode 5 - installing manually and how?

It seems like that in the new version of XCode, Core Data is something i have to install manually. The check box that used to be there when i create a new project is gone.
I've searched to the end of the internet, finding no answer that seems to work in the new version of XCode. Can someone confirm my problem, and does someone have a solution for it? Thanks in advance.
Core Data checkbox is not available in all type of projects. If you try to create an empty project, the "Use core data" checkbox is still there (this was the same in xcode 4).
You can add core data manually by following this tutorial:
http://wiresareobsolete.com/wordpress/2009/12/adding-core-data-existing-iphone-projects/
you could create a new master-detail Xcode project (check the 'use core data' checkbox when creating) and just copy the code from there.
this is particularly helpful when combined with:
http://wiresareobsolete.com/2009/12/adding-core-data-existing-iphone-projects/

Adding multiple Cib / Xib files in Cappuccino

Currently I'm working on a product that uses the Cappuccino Framework and the Objective-J language.
I created my project using this command after installing Cappuccino: capp gen -t NibApplication Myapp
The Problem I'm facing is that I want to keep my code and GUI clean.
By doing so I wanted to split the GUI up in separate Xib / Cib (compiled version Cappuccino can read) and separate controllers, like I do with iOS and Mac apps.
I couldn't find on the internet or on the docs how to do so.
Also, all the examples (including the NibApplication template) contains only 1 xib file.
In short what I'm after is to load a controller, based on a XIB file which holds the window. All the outlets are connected to the controller I loaded.
Is there anyone who knows how to do it?
Thanks in advance and have a nice day!
The typical way to do this is to use a CPWindowController or a CPViewController for each xib you want to load. Here's what it might look like:
var myViewController = [[CPViewController alloc] initWithCibName:"mynib" bundle:[CPBundle mainBundle]];
This would load Resources/mynib.cib from your main bundle. Normally you'd also subclass CPViewController so as to give yourself a convenient spot for your control code.
Fixed it myself! I used this tutorial: http://vimeo.com/8948460
But instead of using atlas I used XCode. Just follow the steps but with XCode and you'll be fine if you want the above to happen.

How do I use the Core Plot framework with Xcode 4?

How do I install the Core Plot framework into Xcode 4?
This older tutorial has instructions on how to install it for Xcode 3, but I could not find any similar instructions for Xcode 4. What do I need to do in order to use this framework with the newer Xcode?
I made one here that followed what I did:
http://recycled-parts.blogspot.com/2011/07/setting-up-coreplot-in-xcode-4.html
Hope it helps!
It appears that I was unable to set up core plot project for the reason that I had corrupt example project which code I was using.
This are the steps:
open a project
add quartzcore framework
add other linker flags: -ObjC -all_load
add CorePlot.xcodeproj to existing project (drag and drop)
add sample class (from examples folder, drag and drop)
drag coreplot framework from added CorePlot.xcodeproj to linked frameworks
in IB
drop object and associate it to sample class
drop custom view to window and associate it vith CPTLayerHostingView
connect object and custom view
And hat is that (may sound complicated, but can be done in under a minute)
Steps can be taken in any order, except last few.
Everithing is very similar to instructions at: http://www.switchonthecode.com/tutorials/using-core-plot-in-an-iphone-application except the way it is done in xcode4 is actually easier.
Here are screenshoots that clarify the above steps: http://www.optimae.biz/data/stackoverflow/coreplot.pdf
Hope this will help someone.

Resources