escoz / quickdialog Goto Github PK
View Code? Open in Web Editor NEWQuickDialog - Quick and easy dialog screens for iOS
Home Page: http://escoz.com/open-source/quickdialog
License: Other
QuickDialog - Quick and easy dialog screens for iOS
Home Page: http://escoz.com/open-source/quickdialog
License: Other
I am new to git and github so this is the best I can do until I learn how to "check-in" my changes.
I modified QDateEntryTableViewCell.m to include the following line in the prepareForElement:inTableView method. If you don't do this, the picker will always show today's date.
_pickerView.date = dateElement.dateValue;
When using QBadgeTableCell and the cell text (initWithTitle) is too large, the badge is not visible any more. In my opinion, the badge should be above the text (not under the text as it is now) and the text should be cut off.
Thanks for QuickDialog: it's fantastic!
Just a couple of thoughts. It'd be nice if it was easier to include QuickDialog in a project. It currently won't compile unless you've added a long list of headers to the .pch file, and it'd be nice to move the sample app into a separate project.
Cheers,
Tom
I'm having trouble using this wonderful framework on my SplitViewController. I cant add a QuickDialogController properly on my DetailViewController.
Any thoughts?
First thanks very much for helping me out on my first issue regarding adding the -fobj-arc in the linker flags. After adding that i now get a different error but something in line with your assert:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'No JSON serializer available!'
It happens on QRootElement+JSONBuilder.m line 62
Strange that this only happens when i build to an actual device - it doesn't when i try to deploy on the simulator. Is there anyway i can force this to use quick dialog's json parser ? I don't know why it doesn't see a json parser when it does if i build for the simulator.
thanks so much!
Hi, thanks for your great project.
I just tried since this morning to add your project to our current project following the "How to add QuickDialog to your project".
But I always get the error:
Undefined symbols for architecture i386:
"OBJC_CLASS$_MKMapView", referenced from:
objc-class-ref in libQuickDialog.a(QMapViewController.o)
"OBJC_CLASS$_MKPinAnnotationView", referenced from:
objc-class-ref in libQuickDialog.a(QMapViewController.o)
ld: symbol(s) not found for architecture i386
The Project Im using doesn't support ARC. Is this the issue?
see this stack overflow entry:
Using QuickDialog in a modal view (at least on an iPad), the "done" button does nothing, by intend of Apple.
If the done button should close the keyboard view, you have to implement the method
If you are using a UINavigationController in an modal view, you have to implement this method in the UINavigationController class, best with this category:
File: UINavigationController+KeyboardDismiss.h
@interface UINavigationController (KeyboardDismiss)
@EnD
File: UINavigationController+KeyboardDismiss.m
@implementation UINavigationController(KeyboardDismiss)
and import tis category header file in the file which creates the UINavigationController.
Works for me ;-)
Karsten
Hi there,
I've begun to use your framework. Nice work ! Thanks !
Just a little pb on footer : with this text, the text is truncated : Check concerned climbers level by tapping on the little circles to the right :)
It seems that this piece of text is not long enough...
I've fix this pb by changing the value substracted here in QuickdialogTableDelegate.m
if (section.footer != nil) {
CGFloat maxWidth = [UIScreen mainScreen].bounds.size.width - 75;
..
Thanks again !
Hi
Just downloaded it & when we run it says it requires iOS 5?
So a no go for iOS 4.x?
Just want to confirm.
Thanks
I am trying to use Quick Dialog in an iPad app. I am looking to create a view similar to the LoginController on the sample app. When adding this sample to a new iPad app the appears to be a vertical transform applied to the keyboard, which renders the keyboard towards the center of the view instead of anchoring it at the bottom. This only seems to be an issue on the iPad as my sample app works fine on the iPhone Simulator.
For replication steps
1.)Create a new single view application project in xcode
2.) Set Device family to iPad, and use storyboard
3.) Add the QuickDialog dependency
4.) In the storyboard add a button, call it login.
5.) create a new viewcontroller LoginViewController add the method + (QRootElement *)createLoginForm from the samples
6.) in the ViewController controller hookup the button, onClick to
RootElement *root = [LoginViewController createLoginForm];
UINavigationController *nav = [QuickDialogController controllerWithNavigationForRoot:root];
nav.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentModalViewController:nav animated:YES];
7.) build and run in the simulator, notice how when you click the button and select one of the text entry fields that the keyboard is incorrectly rendered.
I'm using iOS 5 as my base OS, but I'm getting -[QRootElement initWithJSONFile:]: unrecognized selector sent to instance when I try to initWithJSONFile.
Still trying to research. -- Wondering if you have any hints?
Just download this project and when I try to run it, I am getting following error "Property 'tableView' not found on object of type 'LoginController *'" in LoginController.m, line number 29 and 30. Any idea why this problem is coming?
It's still set to the 0.1 tag, please update to 0.2.
If a QuickDialogController is initialized with a QRootElement with grouped=NO, and then a different QRootElement is set, with grouped=YES, the view controller remains it the 'non-grouped' mode.
Since UITableView's style property is readonly, I think 'grouped' should be a property of the QuickDialogController and only settable in the constructor.
(just started working with QuickDialog, so I might be missing something)
Is es possible to configure a QEntryElement with multiline support? I need a Element for a "Comment" field.
Hello,
I've installed the QuickDialog library into my app per the instructions in the README, including adding #import <QuickDialog/QuickDialog.h> to my prefix.pch file.
With normal builds, everything seems to work just fine โ but when I try to Archive (to create an .ipa file for Ad Hoc testing), I get compile errors saying 'QuickDialog/QuickDialog.h' file not found
. Any thoughts on where to look to solve this problem? Everything seems to be set up according to the docs, and I'm not quite sure where to look or what information would be helpful to share.
There is a StackOverflow question that seems to address this, but I haven't been able to get any of the solutions to work for me: http://stackoverflow.com/questions/5390404/the-workspace-with-the-ios-project-and-related-a-static-library-project
Let me know if you have any pointers. Thanks,
Ezra
I've run into two retain cycles:
Both can be fixed by changing the properties to assign and the ivar's to __unsafe_unretained. However QRadioElement currently depends on a QSection it allocs to be retained in _parentSection which that change alone breaks.
Hello, I wanted to use QuickDialog and put it in a static library where I put all external components that I reuse across my applications.
In one of my projects I have a screen with some QLabelElement. Enough so that one needs to scroll down to see some of the items. My app would crash as soon as a previously out of screen element would need to be displayed. Data associated to this element seemed corrupted in the debugger (_title would not even be of NSString type as seen in debugger). Could not figure out why so I ended up putting the QuickDialog source file in my application project instead of my static library (not being able to reproduce the crash in the sample app) and the crash disappeared without me changing nothing else...
Please note the "other linker flags" were set to "-ObjC -load_all". Still cannot explain it...
Regards
I have a QuickDialog that works fine as a tab bar page. Now I'm adapting this to another app in which I'd like to present it as a modal view like so:
QRootElement *root = [InfoViewController create];
UINavigationController *nc = [QuickDialogController controllerWithNavigationForRoot:root];
nc.navigationBar.barStyle = UIBarStyleBlack;
UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithTitle:@"Done"
style:UIBarButtonItemStyleDone
target:self
action:@selector(doneButtonPressed:)];
nc.navigationItem.leftBarButtonItem = barButton;
[barButton release];
[self presentModalViewController:nc animated:YES];
But in all variations I've tried, the left bar button is hidden. What am I doing wrong?
It'd be far more customizable for users to be able to setup the imageView of the UITableViewCell directly without having to subclass the element or create their own secondary implementation.
Might be interesting to see an implementation with both image and imageView properties exposed and if imageView is provided disregard the image?
Hello,
I'm hoping to use QuickDialog for a project, but am getting errors when I add the quickdialog directory to a preexisting project. I created a blank test project on XCode 4.2 Lion, using the Empty Application template with ARC and Core Data, and had the same problem:
The QuickDialog project itself builds without errors for me. I've posted the test project to GitHub (https://github.com/ahhrrr/QuickDialogTest) โ any hints on how to include QuickDialog in my project? Sorry if I'm missing something simple.
Thanks,
Ezra
Hello I am trying to integrare quickdialog into my project but I want to save the data of QuickDialog in order to use it in my project for example using NSUserDefault or a .plist. Could you help me to do it in my project?
Thanks for your work!, it's fantastic!
Hello,
I need to be able to update the QRootElement of an already existing controller (lazy loading of some items with JSON). I just hoped that using setRoot after creation will enough but to no avail. Tried to work around using reloadData on the underlying UITableView before realizing that your code does just that.
Is there a way to accomplish this? Basically, I would like to initialize a controller with an empty QRootElement and update it afterwards...
Thanks!
Hi there,
Unless I am doing something wrong, the QBooleanElement.onSelected doesn't fire when I click on the cell. Here is the gist of it:
QBooleanElement *registerOrTransfer = [[QBooleanElement alloc] initWithTitle:@"kitty"
BoolValue:NO];
registerOrTransfer.onImage = imgOn;
registerOrTransfer.offImage = imgOff;
registerOrTransfer.key = @"registerOrTransfer";
registerOrTransfer.onSelected = ^{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hello"
message:@"Kitty"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
};
And I can't see the simple 'Hello' dialog.
It does work though on a QButtonElement.
Please advise, thank you
-florin
Hi,
I am loading a dialog from a JSON file, example:
"elements":[
{
"type":"QTextElement",
"text":"Lorem ipsum dolor sit amet, ....."
},
..
In the example above the 'text' attribute contains a large enough text to fill up 3, 4 'rows' in a cell. Actually it's working great if the QTextElement is initialized with text from the code using - initWithText:, but it's displayed truncated and on a single row when loaded from JSON. Unless this is a bug, is there a method I could use to force the height of the cell?
Many thanks,
-florin
Problem
When setting the section footer using a string its height is always 28 regardless of its length
Proposed code solution
I'm not pushing my copy of the code, i'm assuming you might want to use your own coding standards and because i don't know if you want to delegate this task to the user or directly integrate it.
This code will calculate the height for the footer.
QuickDialogTableDelegate.m (tableView:heightForFooterInSection:)
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)index {
QSection *section = [_tableView.root getSectionForIndex:index];
CGFloat stringFooterHeight = 28.0;
if (section.footerView!=nil)
return section.footerView.frame.size.height;
if (section.footer != nil) {
CGFloat maxWidth = [UIScreen mainScreen].bounds.size.width - 50;
CGFloat maxHeight = 9999;
CGSize maximumLabelSize = CGSizeMake(maxWidth,maxHeight);
CGSize expectedLabelSize = [section.footer sizeWithFont:[UIFont systemFontOfSize:[UIFont labelFontSize]]
constrainedToSize:maximumLabelSize
lineBreakMode:UILineBreakModeWordWrap];
stringFooterHeight = expectedLabelSize.height;
}
return section.footer != NULL? stringFooterHeight : 0;
}
Please see my building settings - http://d.pr/KF2I You can see that both armv6 and arrmv7 are both set as escoz mentioned in someone else's issue here #1
this was my error:
dyld: lazy symbol binding failed: Symbol not found: _objc_retain
Referenced from: /var/mobile/Applications/CFE92EA7-1EEB-484E-9321-BC3AE363D290/MyApp.app/MyApp
Expected in: /usr/lib/libobjc.A.dylib
dyld: Symbol not found: _objc_retain
Referenced from: /var/mobile/Applications/CFE92EA7-1EEB-484E-9321-BC3AE363D290/MyApp.app/MyApp
Expected in: /usr/lib/libobjc.A.dylib
I have a modalViewController which has 4 buttons that present viewControllers by pushing.
The one that tries to push a QuickDialogController breaks.
// BUTTON TARGET SELECTOR
UINavigationController *navigation = [QuickDialogController controllerWithNavigationForRoot:root];
[self.navigationController pushViewController:navigation animated:YES];
-> SIGABRT
But If I try to present the QuickDialogController modally it happens to work.
[self.navigationController presentModalViewController:navigation animated:YES];
I can't figure out how to trace this bug, any hints?
This may be a problem with how I am setting up my dateentry elements, however, I notice that I get a ton of crashes when I try to edit dates.
Here is the last crash I got
bad_exec__access in
_textField.text = _entryElement.textValue;
within method
QEntryTableViewCell
Here is how I am declaring my date entry element:
QDateTimeInlineElement* expiryDate = [[QDateTimeInlineElement alloc] initWithTitle:@"Expiry Date" date:expiryDateValue];
expiryDate.mode = UIDatePickerModeDate;
expiryDate.key = @"expiryDate";
[nameSection addElement:expiryDate];
where expiryDateValue is created by: expiryDateValue = [expiryDateValue dateByAddingTimeInterval:expiryDateInterval];
Hi Im new to iPhone development and started creating an app using QuickDialog I have a main interface created using interface builder and have linked QuickDialog to button clicks and so on
When I try to use QDateTimeElement it works perfectly. but if I change that to QDateTimeInlineElement it crashes.
One thing I know for sure is that the Sample app works fine. so im doing something wrong
I have uploaded the source here http://www.mediafire.com/?x71cxf81kgj0xzf
Can anyone check and let me know the problem behind this.
The app crashes when I click the timesheet button and it works well if I change the QDateTimeInlineElement to QDateTimeElement
tsController is the file generates the form for timesheet and
tmsViewController is the file where I link UIButton to each n every QuickDialog forms
Me again, sorry :)
I am defining a radio element in a JSON file, excerpt:
{
"title":"Algorithm: ",
"type":"QRadioElement",
"key":"algorithm",
"items":["RSA", "DSA"]
}
and in the resulting dialog I can see QD is properly defining it as a radio element allowing the user to click, except that it's nothing happening on click and the cell remain selected. Same behavior in the examples coming with QD.
Am I using the expected syntax? For the 'items' json attribute; respectively?
Thanks again!
-florin
Pretty much what I said in the title. I'd like to be able to display the form with the text editor already enabled and the keyboard visible. I'm not sure if this should be a trait of the element, or the section, or the root, but I think the root makes the most sense. If I could set a boolean on the root so that it finds the first editable field and calls becomeFirstResponder on it, that would be perfect.
Just a quick element suggestion: it'd be nice to have the slider element be able to display the current value. Perhaps on the right side of the slider.
I'll probably add my own for now. Just throwing this out. Maybe a Pull Request is in my future.
Currently, ControllerAction for QRadioElement is triggered right when user presses on the element, before the choices appear.
Would it make sense to have another listener action for after the user selects a choice?
I've followed the documentation closely but am unable to build and run my project. I've started off with an empty project to try this out.
When compiling, I get QuickDialog/QuickDialog.h file not found for my Prefix.pch file.
Am I missing something?
If you are using QuickDialog in a modal view and using a UINavigationController, you can not get up one level with the method popToPreviousRootElement because the member navigationcontroller is nil in this case.
I am new to git and github so this is the best I can do until I learn how to "check-in" my changes.
I modified QRadioItemElement.m to be the following:
Hi,
I'm wondering if theres a way to have a label that shows the value of the QFloatElement to make it more user friendly, maybe in the same field or in a QLabelElement below the QFloatElement.
Is there a way or event to cath when the user change the value of the slider?
Thank you for all your help!
Problem:
Text changes its position to the left by many pixels after the cell gets reused.
How to reproduce:
Using the example project:
The text value has moved to the left !
I'm a NOOB to IOS development, and I'm trying to integrate your QuickDialog into my tab bar application. I have a custom controller that is inheriting the QuickDialogController.
Then in my viewWillAppear I am creating my QRootElement and setting it to my self.root property. This does make the view on my tab show as expected and my tab bar title changes to the title of the root.title when the view is loaded. Unfortunately my navigationcontroller is not working as expected. When I select a QSection the navigation seems to push the same view onto my navigation controller and I never see the QSection view I expect to see. I've been wrestling with this for several days, and any help would be greatly appreciated.
So far I love this QuickDialog open source utility and this is the last screen that I need to complete development on my app so I can submit it.
Thanks in advance again,
X
The commit 7303ad5 breaks the layout of some elements, especially the radio elemts.
The reason is, that it's moving the detailTextLabel only without correcting the width. If there is an accessory view visible, the two views will overlap. Also in the Labels Section of the demo, the OK labels overflow the cell boundaries.
Regards
Frank
Thanks for writing QuickDialog. It's saved me a ton of time.
I have a form with a bunch of QEntryElements in several sections. I'm using the QEntryElements to capture user input. I've managed to format the text in the entries' labels appropriately, but I haven't figured out how to format the text on the user-input side of the fields.
For example, in my case, I'd like the text label for each field to be bold and left-aligned and for the user-input to be right-aligned. That way, all the input with line up on the right, leaving as much space as possible between the label and the input.
In the current iteration of QuickDialog, is there an easy way to style the input text? I tried styling the detailTextLabel, but that didn't seem to work on the QEntryElements (although it did work for the radio inputs).
If not, what's the easiest solution and where would I start looking to figure out how to do it?
Thanks! And thanks again for all your work.
I'm using XCode 4.2 and storyboard.
I couldn't find an example of embedding QuickDialog as one of the pages on my tab controller. I created a new controller called MyCustomController which inherited form QuickDialogController.
@interface MyCustomController : QuickDialogController
...
I then added MyCustomController to the storyboard page that I wanted it to appear in by declaring it the views custom class. I placed my dialog creation code into 'viewDidLoad' and had to change code in QuickDialog source to make it appear group style. It's working but I fear that QuickDialog is written way better then what I did and I may have used a bazooka to kill some ants.
My question is what is the proper way to do this without having to alter the source code. Thanks.
Because we have some C++ in our project, the compiler throws an error due to "template" in QSection.h, QSection.m, and QBindingEvaluator.m.
Can this be changed to aTemplate or some other non-reserved word?
The titles can be truncated (or not available), and the slider can be to the left of the table boundary.
Works ok though on iphone.
In the Entry usage example the keyboard covers the text fields and they become invisible. With an old version, before the passage from UITableViewController to UIViewController, there isn't this problem.
I am having this issue where I am trying to add the "quickdialog" folder into my project but I get many errors, However if I insert the import statements you have in your .pch file in the project I no longer get the errors.
Are these import statements required to be inside the .pch file? why?
Am I importing the project into mine incorrectly then?
I've followed the sample and am able to get the loginform working, and retrieving the value using fetchValueIntoObject.
However, I can't find a way to easily update the values. For example, clearing out the password field when login fails. Am I missing something?
Is there a way to use this without implementing a navigation controller?
I wanted to show a side menu in a project, and I tried to add it as a subview, but it did not work for me. I think I might be doing something wrong, but I think it has to do with the fact that my view controller is not in a Navigation Controller.
Hi there,
Thanks for creating QuickDialog.
So I added QuickDIalog through git submodule as per instruction.
Then I drag a UITableViewController out onto the storyboard(on Xcode 4.2, ios5). Change the custom class of this UITableViewController to LoginController.
Tried running it on ios5 but it gave the following error
Unknown class LoginController in Interface Builder file.
what could be the problem?
bryan
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.