clayallsopp / formotion Goto Github PK
View Code? Open in Web Editor NEWMaking iOS Forms insanely great with RubyMotion
Home Page: http://clayallsopp.github.com/formotion/
License: Other
Making iOS Forms insanely great with RubyMotion
Home Page: http://clayallsopp.github.com/formotion/
License: Other
Making an issue for this; things go both in repo and on the wiki.
inputView
, observing, etc)A simple form: (img link)
(btw: I added a select_many
option, works just like select_one
, but many)
The [+]
button adds another player, but I can't get the list of players form to update. I have tried ctrlr.form = rebuild_form ; ctlr.view.reloadData
, but it does nothing.
We should start prepping for a new milestone that includes all the refactoring + row types. 0.5
is pretty arbitrary, but it looks more final than 0.0.4
Some ideas that come to mind:
@mordaroso any other thoughts?
I've noticed that CheckRow doesn't work like HTML forms, where there is a checked attribute and a value that gets returned when that row is checked. Any reason not to use the HTML approach? Not sure if you had a different vision for how to get the actual selected values from a row, when value seems to have to be true/false to represent checked or not.
In my case I'm using them as radio buttons, and assigning instances to fields. The selected instance is what I want returned, rather than a true/false.
How I should set the on_tap in a row template?
This is actually due to BubbleWrap not working in 1.24. It's been fixed in the master branch but there hasn't been a gem update yet.
How do I custom style formotion tableview?
Hi,
I'm trying to start using formotion in my first app, but it immediately breaks my app when adding it to my rakefile.
I have formotion 0.5.1, bubble-wrap 1.1.2, and the latest RubyMotion.
Here's my rakefile:
# -*- coding: utf-8 -*-
$:.unshift("/Library/RubyMotion/lib")
require 'motion/project'
require 'rubygems'
require 'bubble-wrap'
require 'formotion'
Motion::Project::App.setup do |app|
# Use `rake config' to see complete project settings.
app.name = 'CoffeeTimer'
end
And here's the errors I'm getting:
DYLD_ environment variables being ignored because main executable (/usr/bin/atos) has __RESTRICT/__restrict section
superclass mismatch for class Formotion::Form (TypeError)
Terminating app due to uncaught exception 'TypeError', reason: 'superclass mismatch for class Formotion::Form (TypeError)
*** First throw call stack:
(0xa5c022 0x3eccd6 0x1e9eb4 0x34ab 0x2d15)
I'm running Mountain Lion, if that matters.
I'm sure you were just trying to get a fix out to the nested form within a navigation stack within a tabbar problem as soon as possible and you probably already know this and plan on fixing it, but I just wanted to make sure...
The popup animation starts with that black bar on top and closes the gap as it animates upwards... You can only see it for maybe half a second, but it's definitely there every time. I'm sorry to be such a stickler but this repo will save me a lot of time and trouble if it can produce production usable results. Thanks for the time!
Hi,
I just upgraded RM here and Formotion 0.3 is not working. Here is what I get when I try building my app:
rake aborted!
key not found: "lib/formotion/form.rb"
(See full trace by running task with --trace)
I am using Bundler to manage my dependencies, here is the file content (if you think another dependency may be screwing things up):
source "https://rubygems.org"
gem "bubble-wrap", "~> 1.1.0"
gem "formotion", "~> 0.0.3"
gem "teacup", "~> 0.0.1.pre"
gem "cocoapods", "~> 0.9.1"
gem "motion-cocoapods", "~> 1.1.0"
gem "motion-testflight", "~> 1.1"
In my Rakefile
I have this (that theoretically order Bundler to load all my dependencies into the project, including formotion itself):
require "bundler"
Bundler.require
I don't know what is causing the problem. Please let me know if you figure it out. Also, don't forget to ask for more information if you need it :)
Getting this error probably the gem server does not have the version 0.0.4.
Also pointing Gemfile to the git repo does not work either and fails with error:
rake aborted!
cannot load such file -- bubble-wrap/camera
It would be a nice feature to allow for generic buttons that have an associated callback with them.
Thanks for the great gem!
http://www.rubymotion.com/developer-center/articles/testing/#_views_and_controllers_testing
Probably something that tests FormController
Ideas on uses:
table_view
's content offset is correctHi,
I'm trying to move all the formation stuff inside it's own separate controller,
but I couldn't see any examples, I'm using a UITabBarController in my app_delegate,
and the controller that it includes has an 'init' super method with additional code to set the tabBarItem.image
and the init method will be called via MyController.alloc.init
could you provide an example on how to separate the formation stuff into it's own controller?
Can you provide an example of how to store the settings hash so that it can be recalled and used as a template dynamically.
I have built an app that allows you to dynamically add field rows etc, but every time i try to save the hash it doesn't correctly store - perhaps it's just me being a Ruby noob.
I'd like to store the hash in a DB, or send it to a sever.
A Row
with type NumberRow
returns a String
instead of a Fixnum
/Float
on form.render
. One would expect it to be the latter when using the data from form.render
, or am I missing something here?
I'm sure I'm doing something wrong, but I'm trying to display a form in a SettingsController that I show as a modal. However when I trigger the modal in the action inside of another controller, I get the following error:
form_controller.rb:40:in 'viewDidLoad': undefined method 'sections' for nil:NilClass
Here's the code for the 'settings' action inside of ProfilesController, which triggers the SettingsController modal:
def settings
controller = SettingsController.alloc.initWithNibName(nil, bundle:nil)
controller.profile = @data
controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal
self.presentViewController(
UINavigationController.alloc.initWithRootViewController(controller),
animated:true,
completion: lambda {}
)
end
And my SettingsController, which follows the Login example:
class SettingsController < Formotion::FormController
attr_accessor :profile
def init
form = Formotion::Form.new({
title: "Settings",
sections: [{
rows: [{
title: "User Name",
type: :string,
placeholder: "name",
key: :user
}, {
title: "Password",
type: :string,
placeholder: "password",
key: :password,
secure: true
}]
}, {
rows: [{
title: "Login",
type: :submit,
}]
}]
})
super.initWithForm(form)
end
def viewWillAppear(s)
super
save_button = UIBarButtonItem.alloc.initWithTitle("Save", style: UIBarButtonItemStyleBordered, target:self, action:'save')
self.navigationItem.rightBarButtonItem = save_button
cancel_button = UIBarButtonItem.alloc.initWithTitle("Cancel", style: UIBarButtonItemStyleBordered, target:self, action:'cancel')
self.navigationItem.leftBarButtonItem = cancel_button
end
end
If I make form an instance variable I get the same error.
The FormModel does not work if you use add an observer on the model class, example take the Formmodel example
in file #user_controller.rb
class UsersController < UITableViewController
viewDidLoad
super
self.title = "Scoreboard"
self.users.first.addObserver(self,
forKeyPath:'team',
options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld,
context:nil)
end
...
...
def observeValueForKeyPath(key_path, ofObject:obj, change:change, context:context)
NSLog("Changed #{obj.class.ancestors}")
if key_path == "team" and obj.respond_to?(team)
UIAlertView.alloc.initWithTitle(obj.name, message:"team: #{obj.team}", delegate:nil, cancelButtonTitle:"OK", otherButtonTitles:nil)
else
super
end
end
end
The UsersController fails to load the user's form_properties.
Hi all,
I would like to dismiss the UIPickerView created by the picker row with a custom UIToolbar Done button. How do I get my hands on the @picker
object in PickerRow?
Thanks,
Jon
Is there a callback when a switch was switched?
e.g something that can react on UIControlEventValueChanged?
The 'Retreive' section in the README shows viewDidLoad
being overridden to add a Save button, but when I try this the form is blank. Calling super
at the end of viewDidLoad solves the problem.
Is this a mistake in the README or am I misusing the framework?
Form is initialized like this:
form = Formotion::Form.new({
sections: [{
rows: [
{
title: "Pick",
key: :pick,
type: :picker,
items: ["Foo", "Bar"],
value: ["Foo"],
clear_button: :never
}
]
}]
})
Then later the value gets changed:
@form.sections[0].rows[0].value = "Bar"
This changes the text value, but when tapping it and loading the picker, "Foo" is still selected. Then you can't actually pick "Foo" again unless you go to "Bar" and then back to "Foo".
While adapting your suggestion I didn't saw how I could set on_tap_callback in form_data.
When working with number fields, log shows this error:
Can't find keyplane that supports type 8 for keyboard Wildcat-Portrait-QWERTY-Pad; using 1191665175_Wildcat-Alphabetic-Keyboard_Capital-Letters
UIKeyboardTypeNumberPad
works on iPad
The specs seems die early. No error message though.
$ rake spec
Build ./build/iPhoneSimulator-5.1-Development
Simulate ./build/iPhoneSimulator-5.1-Development/Formotion_spec.app
Form Persisting
- works
- works with subforms
I'm using Rubymotion 1.23
Hi there - I'm wondering if there is any way to easily have a small icon come up in a Formotion row? I'm trying to avoid having to build a custom table with a custom cell if I can, because the Formotion approach requires so much less code.
For example, the ability to specify a value for "#imageView.url" in the cell that the row defines would be perfect.
Is this something that Formotion can do?
I had a look in the current set of row types, and ImageRow seems to be for pulling an image from the camera of device's photo library.
With the following simple form:
form = Formotion::Form.new({
sections: [{
title: "Foo",
rows: [{
title: "Bar",
key: :bar,
type: :string
}]
}]
})
If you click into the Bar field, type something, and click Done on the keyboard, this happens:
2012-07-19 10:50:54.131 PFCS[70405:c07] form.rb:106:in `submit': undefined method `arity' for nil:NilClass (NoMethodError)
from form_controller.rb:41:in `block in viewDidLoad'
from string_row.rb:68:in `block in add_callbacks:'
2012-07-19 10:50:54.133 PFCS[70405:c07] *** Terminating app due to uncaught exception 'NoMethodError', reason: 'form.rb:106:in `submit': undefined method `arity' for nil:NilClass (NoMethodError)
from form_controller.rb:41:in `block in viewDidLoad'
from string_row.rb:68:in `block in add_callbacks:'
This can be remedied by adding a form.on_submit
callback, but I would assume the Done button should just hide the keyboard and not try to submit the form if a callback is not defined?
I can't get any of the examples in formotion 1.1.5 to work.
When running FormModel, 'rake simulator', i get the message
"uninitialized constant BubbleWrap
/Library/Ruby/Gems/1.8/gems/bubble-wrap-1.1.4/lib/bubble-wrap/loader.rb:7
/Library/Ruby/Gems/1.8/gems/bubble-wrap-1.1.4/lib/bubble-wrap/core.rb:1
../../lib/formotion.rb:2"
so then I added 'require "bubble-wrap"' to the Rakefile and ran 'rake simulator' again, and this time all the files compile but when It runs I get the error message :
(main)> 2012-11-13 00:06:05.911 FormModel[4879:f803] uninitialized constant Formotion::RowType::Base (NameError)
2012-11-13 00:06:05.915 FormModel[4879:f803] *** Terminating app due to uncaught exception 'NameError', reason: 'uninitialized constant Formotion::RowType::Base (NameError)
I do have the latest versions of bubble-wrap (1.1.4) and formotion (1.1.5) installed. Im running ruby 1.8.7.
Any Idea what the issue is?
Thanks
Chris
Firstly thanks for formotion, it makes it really really nice and easy to knock up a form!
Apologies if this is a stupid question, but I couldn't see an examples of the kind of workflow that I'm after. Essentially I have a kind of list of things I want my user to do (its effectively an inbox)
My form is shown with the first item populated, the user then edits and submits. On submit I then want to populate my form with the second item in the list, when the user submits that I show the third ... and so on, until the list is empty.
So far I have something like below. How do re-populate the form after submit? Or should I create a new one?
Also worth noting:
(1) for the now, the form elements will always be the same
(2) In a later workflow the form elements will dynamically change, depending on the thing the task the user needs to complete
Any thoughts on how to implement for both (1) and (2)?
class FooController < Formotion::FormController
def init
super
self.initWithForm(create_form)
self
end
def viewDidLoad
super
self.form.on_submit do |data|
#now save the user's edits..
#but how do I re-populate the form with the next thing ...
end
end
private
def create_form
f = Formotion::Form.new
f.build_section do |s|
s.build_row do |r|
r.type = :string
r.value = 'first thing'
r.key = :text
end
s.build_row do |r|
r.type = :submit
r.title = 'Save'
end
end
f
end
end
2012-07-01 19:20:18.067 EZ Score[78526:fb03] form.rb:106:in submit': undefined method
arity' for nil:NilClass (NoMethodError)
from form_delegate.rb:71:in tableView:didSelectRowAtIndexPath:' 2012-07-01 19:20:18.069 EZ Score[78526:fb03] *** Terminating app due to uncaught exception 'NoMethodError', reason: 'form.rb:106:in
submit': undefined method arity' for nil:NilClass (NoMethodError) from form_delegate.rb:71:in
tableView:didSelectRowAtIndexPath:'
'
I had the above issue when I used formotion in my own project, so I then cloned your example KitchenSink project and got the same issue.
Hi,
Right now the only event I can see is on_submit
. Is it possible to do something in this maner but for things such as static
form elements?
Let's say I want to have an about
static element that opens a modal with some text and maybe a couple of images. While I want the about
link to look as it is part of the form, it needs to have a custom behavior attached to it.
Is it something formotion can handle, or is it outside of the scope of this gem?
Thanks!
I'm nesting my form in the UINavigationController
and have a "Done" button in the top right corner that starts out disabled. I'd like to enable it only when all of the elements in the form have been filled out.
RowType::Base FIELD_BUFFER seems to be 64 when running on an iPad in iPhone 2x mode. So maybe it is a bug in Device.iphone? and not really Formotion.
This causes the field frame to get too small to show the data.
Is this possible? If not, any pointers on how I can add that feature?
I want to use Formotion for what may be considered somewhat non-typical use โ I only want to display data, not to edit it.
I find Formotion's DSL really nice for building up a UITableView with grouped sections. The tableview that I want to build would have several entries, each of which push another viewController, which could be achieved with multiple submit buttons.
There are really only two additional features that I would need to implement this:
I believe I could implement both of these features, but I'm wondering whether they would fit into your vision of what Formotion should provide?
This might affect other row types too. Could either default to blank or raise an error if it's not set?
Hi,
Formotion looks interesting, I installed the gem and then required it in my rakefile as the instructions suggest.
I then tried to compile my app and got the message:
... uninitialized constant Formotion::RowType::Base (NameError)
... *** Terminating app due to uncaught exception 'NameError', reason: 'uninitialized constant Formotion::RowType::Base (NameError)
Also, on installing the gem I got the following RDOC error:
RDoc failure in lib/formotion/row/row.rb at or around line 92 column 29
Before reporting this, could you check that the file
you're documenting compiles cleanly--RDoc is not a
full Ruby parser, and gets confused easily if fed
invalid programs.
The internal error was:
ERROR: While generating documentation for formotion-1.2
... MESSAGE: Name or symbol expected (got #RubyToken::TkDSTRING:0x1042ae518)
... RDOC args: --ri --op /Library/Ruby/Gems/1.8/doc/formotion-1.2/ri lib --title formotion-1.2 Documentation --quiet
The Hash example works fine but when I try to create a form using the DSL syntax example in the README it crashes with the error below. I'm using v1.1.1.
(main)> 2012-09-29 10:30:45.553 Parse Test[4186:c07] row_cell_builder.rb:15:in `make_cell:': undefined method `cell_style' for nil:NilClass (NoMethodError)
from row.rb:234:in `make_cell'
from form_delegate.rb:65:in `tableView:cellForRowAtIndexPath:'
2012-09-29 10:30:45.554 Parse Test[4186:c07] *** Terminating app due to uncaught exception 'NoMethodError', reason: 'row_cell_builder.rb:15:in `make_cell:': undefined method `cell_style' for nil:NilClass (NoMethodError)
from row.rb:234:in `make_cell'
from form_delegate.rb:65:in `tableView:cellForRowAtIndexPath:'
'
*** First throw call stack:
(0xd17022 0x6a7cd6 0x2d2614 0xfb8a9 0x162cc54 0x162d3ce 0x1618cbd 0x16276f1 0x15d0d21 0xd18e42 0x26a2679 0x26ac579 0x26314f7 0x26333f6 0x2632ad0 0xceb99e 0xc82640 0xc4e4c6 0xc4dd84 0xc4dc9b 0x2d267d8 0x2d2688a 0x1592626 0x60750 0x5fe21 0x1)
terminate called throwing an exception*** simulator session ended with error: Error Domain=DTiPhoneSimulatorErrorDomain Code=1 "The simulated application quit." UserInfo=0x100653670 {NSLocalizedDescription=The simulated application quit., DTiPhoneSimulatorUnderlyingErrorCodeKey=-1}
rake aborted!
Command failed with status (1): [DYLD_FRAMEWORK_PATH="/Applications/Xcode.a...]
Result: http://i.imgur.com/g0gQP.png
I'm having a problem where my app crashes with the following unhelpfull error:
*** simulator session ended with error: Error Domain=DTiPhoneSimulatorErrorDomain Code=1 "The simulated application quit." UserInfo=0x104400050 {NSLocalizedDescription=The simulated application quit., DTiPhoneSimulatorUnderlyingErrorCodeKey=-1}
rake aborted!
Command failed with status (1): [DYLD_FRAMEWORK_PATH="/Applications/Xcode.a...]
I am using Formotion with the persistence option to help me save application settings. If I delete the app from the sim completely and run rake, then everything works fine. I can work with the forms, enter data and everything is ok. I can even press the home button to go back to Springboard and then tap the app again and everything is ok. However, if I stop the sim (or just kill the app in the sim) and then restart the app, then it crashes with the above error as soon as I try to initialise the previously saved form.
I've narrowed down the core dump to the line of code where I am creating the controller via a call to alloc.init:
ApplicationSettingsController.alloc.init
The first time this is called, it works fine, but as I said, subsequent invocations cause a core dump.
The controller class itself isn't all that complex, it's just a holder for an API url and key:
class ApplicationSettingsController < Formotion::FormController
PERSIST_AS = :application_settings
def init
@form = Formotion::Form.persist({
title: "Application",
persist_as: PERSIST_AS,
sections: [{
rows: [{
title: "Server",
type: :string,
key: :server,
text: MyApp::ApiHelper.api_url_base,
placeholder: MyApp::ApiHelper.api_url_base,
auto_correction: :no,
auto_capitalization: :none
}, {
title: "API Key",
type: :string,
key: :api_key,
secure: false,
auto_correction: :no,
auto_capitalization: :none
}]
}]
})
@form.on_submit do
ApplicationSettingsController.set_api_url_and_key_from_saved_settings
end
super.initWithForm(@form)
end
end
I had some debug in there prior to posting this code and it was crashing at the Formotion::Form.persist line. I did an experiment and changed .persist to .new and it didn't crash (but it also didn't persist the form, so that was not really a solition).
The app's main windows are stitched together with a storyboard.
Anyone have any ideas what might be going wrong?
Regards,
M@
module Formotion
module RowType
class MyNewRow < Base
def build_cell(cell)
blue_box = UIView.alloc.initWithFrame [[10, 10], [30, 30]]
blux_box.backgroundColor = UIColor.blueColor
cell.addSubview blue_box
# return nil because no UITextField added.
nil
end
end
end
end
blux_box.backgroundColor = UIColor.blueColor should be "blue_box"
For fun
Hi Clay,
I was trying to fix an issue for one of RubyMotions's user, he is using Formotion.
I launched the Persistence example and when taping on render several times, the app crashes, do you have the same behavior ?
Persistence joffreyjaffeux$ rake
Build ./build/iPhoneSimulator-6.1-Development
Simulate ./build/iPhoneSimulator-6.1-Development/Persistence.app
(main)> "server_url_str hello_worlddqsdqsdsqd"
"server_api_key 123123secretdqqsd"
2013-02-22 14:37:22.040 Persistence[4707:c07] Unable to set url from saved config in app_delegate: hello_worlddqsdqsdsqd
(main)> "server_url_str hello_worlddqsdqsdsqd"
"server_api_key 123123secretdqqsd"
2013-02-22 14:37:27.179 Persistence[4707:c07] Unable to set url from saved config in app_delegate: hello_worlddqsdqsdsqd
(main)> "server_url_str hello_worlddqsdqsdsqd"
"server_api_key 123123secretdqqsd"
2013-02-22 14:37:27.426 Persistence[4707:c07] Unable to set url from saved config in app_delegate: hello_worlddqsdqsdsqd
(main)> "server_url_str hello_worlddqsdqsdsqd"
"server_api_key 123123secretdqqsd"
2013-02-22 14:37:27.611 Persistence[4707:c07] Unable to set url from saved config in app_delegate: hello_worlddqsdqsdsqd
((null))> rake aborted!
Hello,
Is there a way to change some part of the form when the makes a selection on another part ?
For example if I have a picker A with a list of universities and another picker B with a list of courses or careers I'd like to change the content of picker B according to which courses or careers ara available at the selected university on picker A.
Loving Formotion, thanks a lot!
Formotion is awesome.
It's great that a form can be initialized via hash or DSL, but it's somewhat unclear to me how to initialize with a hash that ties into a model without a submit button.
I've looked at the examples:
EXAMPLE FormModel
Uses the DSL to tightly couple the form data to the model
EXAMPLE KitchenSink
Uses the hash, but the data does not persist: Looks intended to be submitted to a webservice.
Of course what I"m looking for is to get the hash to tie in comfortable with the model (the mix of the 2). I don't want to break standard and use a "Submit" button. Since no settings page operates like that.
From what I can tell, you can initialize initWithForm XOR initWithModel. What I truly want is to initWithForm (so I can use the hash cleanliness) and then set a model. Maybe even a model per section!? if I want to be tidy.
I can't imagine I'm the only one with this requirement. Perhaps the formable should have the ability to set? Instead of just init?
I saw the formable code essentially observes change. I could write my own, but it seems that should be part of the formotion core right?
I feel like I've got a handle on the problem, but not so much on the solution. Is the solution just something I'm missing, or is it actually missing due to the incipient nature of the project?
I have a simple controller shown below for which I want to write a simple set of specs that check that changing any form values and clicking save is reflected on the underlying model (using MotionModel).
What I discovered so far:
row = @form.row_for_index_path(NSIndexPath.indexPathForRow(0, inSection: 0))
The question is how do I programmatically change the value of the UITextField associated with a row, and how do I simulate a tap the save button since I have to skip the code that adds it (my current workaround is to trigger the @controller.save method)
Then I was planning to retrieve the model using a MotionModel finder and check that the value change was reflected there. I can I will have to wrap the navigation back to the main table in another "unless RUBYMOTION_ENV == 'test'" to prevent transition since the testing environment doesn't seem to deal with multi-controller scenarios.
Thanks. By the way, wickedly awesome framework, great work @clayallsopp !
class TodoController < Formotion::FormController
attr_accessor :todo
def self.create(todo)
@form = Formotion::Form.new(todo.to_formotion('Edit your ToDo'))
controller = self.alloc.initWithForm(@form)
controller.todo = todo
controller
end
def viewDidLoad
unless RUBYMOTION_ENV == 'test'
super
self.navigationItem.rightBarButtonItem = UIBarButtonItem.alloc.initWithBarButtonSystemItem(UIBarButtonSystemItemSave, target:self, action:'save')
end
end
def save
data = @form.render
@todo.from_formotion!(data)
@todo.save
app = UIApplication.sharedApplication
delegate = app.delegate
controller = delegate.instance_variable_get("@todos_controller")
view = controller.instance_variable_get("@table")
view.setNeedsDisplay
self.navigationController.popToRootViewControllerAnimated(true)
end
end
My broken test attempt:
describe "TodoController" do
before do
@now = NSDate.new
@todo = Todo.create :name => "Buy Milk",
:description => "We need some Milk",
:due_date => @now
@controller = TodoController.create(@todo)
@form = @controller.instance_variable_get("@form")
end
it "saves changes made to a todo" do
row = @form.row_for_index_path(NSIndexPath.indexPathForRow(0, inSection: 0))
#row.text_field.text = "Buy 1% Milk" #this blows up, text_field is null
puts "ROW:: key => #{row.key}, value => #{row.value}, title => #{row.title}"
# values = @form.to_hash
# puts "BEFORE ==> #{values}"
# values[:sections][0][:rows][0][:value] = "Buy 1% Milk"
# puts "AFTER ==> #{values}"
# @form.values = values
@controller.save
end
end
I want to provide a simple 1-tap way for a user to select from a list of items.
If I create a Formotion form with a list of submit buttons, it's very easy for me to capture the tap and move to my next panel, but it's not obvious to me how I can work out which submit button was tapped.
Is this possible in Formation?
As background, the reason I want to do this is because I want it to be a single tap process for the user. If I use a selector, there's a tap to fire up the selector, and then a second tap to pick an item from the list. For expediency, I'd prefer to just present the list of items and allow the user to jump to the next screen with a single tap.
Alternatively, if I am off track here, is there another way to provide a single tap way for a user to select an item from a Formotion list?
Cross posted on the RubyMotion list here: https://groups.google.com/forum/?fromgroups=#!topic/rubymotion/wfNztAVy0Yk
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.