Author Topic: Keyboard "InputBox" for iOS (Help needed, near to completion!)  (Read 10606 times)

Offline DaCarSoft

  • Community Developer
  • Mr. Polyvector
  • ******
  • Posts: 182
    • View Profile
Hello!

After the reading of several posts in this forums, I found that many people were searching (like me) a way to obtain data using the native iOS keyboard   :S

I was trying the untested code from Trucidare (http://pastebin.com/vLcTxCX5), but it didn't work "as is" for me   :'(

As I need a way for the user to input data (usernames mostly), I was trying and thinking harder to obtain the correct source code to show an alert box on screen, expand the native iOS keyboard and wait for the user input.

And the good news are: It works!!!!   but there are also bad news: The working is not totally OK.

Its to say: I can't obtain a string longer than 8 characters (the string appears corrupt if the user input is longer) and I can't show Spanish characters like "á" or "Ñ" in the alert messages or titles...

I'm not a newbie in programming but I'm a newbie in XCode and GLBasic, and I remember only a bit of C/C++.

Someone could help???  Gernot???  Trucidare???    =D    It is near of completion...     :P

This is the code:

in the XCode project I added the next lines to a .mm file:
Code: GLBasic [Select]
#if defined (TARGET_OS_IPHONE)
#import <UIKit/UIAlert.h>



@interface GLBasicMessageBoxer: NSObject <UIAlertViewDelegate>
{
        UITextField* txtValue;
        const char* resString;
        const char* resButton;
}
- (void)showAlert:(NSString*)pTitle andMessage:(NSString*)pMessage andLabel:(NSString*)pLabel;
- (const char*)getValue;
@end

@implementation GLBasicMessageBoxer

- (void)showAlert:(NSString*)pTitle andMessage:(NSString*)pMessage andLabel:(NSString*)pLabel
{
        UIAlertView* alert = [[UIAlertView alloc] init];
        alert.title = pTitle;
        alert.message = pMessage;
        alert.delegate = self;
        [alert addButtonWithTitle:@"No"];
        [alert addButtonWithTitle:@"Yes"];
       
        //[alert addTextFieldWithValue:@"" label:@"T1"];    ---> This do not pass the App Store review because it is undocumented
        //[alert addTextFieldWithValue:@"" label:@"T2"];    ---> This do not pass the App Store review because it is undocumented
        //txtValue = [alert textFieldAtIndex:0];  
       
                txtValue = [[UITextField alloc] init];
                txtValue.frame = CGRectMake(12.0, 70.0, 260.0, 25.0);
                txtValue.placeholder = pLabel;
                txtValue.backgroundColor = [UIColor whiteColor];
                txtValue.clearButtonMode = UITextFieldViewModeWhileEditing;
                txtValue.keyboardType = UIKeyboardTypeAlphabet;
                txtValue.keyboardAppearance = UIKeyboardAppearanceAlert;
                txtValue.autocapitalizationType = UITextAutocapitalizationTypeNone;
                txtValue.autocorrectionType = UITextAutocorrectionTypeNo;
                [txtValue becomeFirstResponder];

                [alert addSubview:txtValue];
       
        [alert show];
        //[alert release];
}

- (void)alertView:(UIAlertView*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
        switch(buttonIndex)
        {          
                case 0:
                        break;        
                case 1:
                        resButton = "1";
                        resString = [txtValue.text UTF8String];
                        break;      
        }
}

- (const char*)getValue
{
        if (resButton == "1"){
                return resString;
        }
        else
        {
                return "";
        }
}

@end

GLBasicMessageBoxer* newAlert;

extern "C" void iOSMessageBox(const char* pTitle, const char* pMessage, const char* pLabel)
{
        newAlert = [[GLBasicMessageBoxer alloc]init];
        [newAlert showAlert:[NSString stringWithUTF8String:pTitle] andMessage:[NSString stringWithUTF8String:pMessage] andLabel:[NSString stringWithUTF8String:pLabel]];
}

extern "C" const char* GetiOSMessageBoxValues()
{
        return [newAlert getValue];
}



#endif
 

and from GLBasic I can use this code:
Code: GLBasic [Select]
        IMPORT "C" void iOSMessageBox(const char*,const char*, const char*)

        IMPORT "C" const char* GetiOSMessageBoxValues()

        iOSMessageBox("Title12345678","Text12345678" + CHR$(0xD) + CHR$(0xD), "Example")

        GLOBAL MESSAGE$

        WHILE MESSAGE$ = ""
                SLEEP 500
                MESSAGE$ = GetiOSMessageBoxValues()
        WEND
       
        PRINT MESSAGE$, 100, 100
        SHOWSCREEN
 

My next steps would be to convert in parameters the number of buttons, text of each button, number of text boxes, content of the label of each text box... to return the index of the button pressed...   but before I need to obtain the correct string from the UITextField and use characters of languages different than english (may be some thing related to the UTF8/ASCII format or may be that I have to use roman codepages...)  :rant:

Any ideas???

Thanks in advance, hope this helps someone!
« Last Edit: 2011-Feb-19 by DaCarSoft »
"Si quieres resultados distintos... no hagas siempre lo mismo" - Albert Einstein.

Offline Moebius

  • Dr. Type
  • ****
  • Posts: 315
    • View Profile
Re: Keyboard "InputBox" for iOS
« Reply #1 on: 2011-Feb-18 »
Although I can't get my head around objective C well enough to make contributions to the code, I can offer conceptual ideas.

In your simple sample program, it simply loops until the string isn't blank.  There are two problems with this - if the user enters nothing, or if they press 'cancel' in the alert (assuming there is that button), the program will 'hang'.  There needs to be a way of determining if the string has been entered, because you can't rely on the string NOT being blank to determine if the alert has been closed.

Perhaps something like this:  isMsgBoxOpen() that returns true or false?

One thing that would be useful is if you had:
       GetiOSMessageBoxValues()
       GetiOSMessageBoxValuesAsync()

In one function, it loops and waits until the user has closed the alert, and in the other it just returns the current text that has been entered.


Anyway, thanks a lot for putting this together  :good:  and I'm sorry that the only thing I can do is complicate things with ideas for functions  :whistle:
« Last Edit: 2011-Feb-18 by Serpent »
Endless Loop: n., see Loop, Endless.
Loop, Endless: n., see Endless Loop.
- Random Shack Data Processing Dictionary

Offline DaCarSoft

  • Community Developer
  • Mr. Polyvector
  • ******
  • Posts: 182
    • View Profile
Re: Keyboard "InputBox" for iOS
« Reply #2 on: 2011-Feb-18 »
Its nothing!
And, yes, as you say, the program loops until the string is not blank, and don't take care of "cancel" button control...

This code is a sample, that need some fixes to obtain a correct and "complete" string, that is my priority :)

I have several plans for the GetiOSMessageBoxValues(), like, for example, to include parameters in the function, may be doing something like this:

iOSMessageBoxValues("Title", "Message", "LabelAtText1$LabelAtText2$LabelAtText3", "TextAtButton1$TextAtButton2$TextAtButton3")

The function, in this way, should "explode" the parameters delimited by the separator "$" and detect the number of controls of each type needed, and show these controls into de alert box at the correct position...

After, we could use something like this:

GetiOSMessageBoxValues("Text", 1)   ---> To obtain the text at the index 1

or something like this:

GetiOSMessageBoxValues("Texts")  ---> To obtain if it is possible, as the return of the function, a matrix of results with all the values from the textboxes inside the input box...

or something like this:

GetiOSMessageBoxValues("buttons") ---> To obtain the index of the pushed button, or "none" if the user has not ended...

Then we could do something like this (for example):


WHILE BUTTON$ = "none"
   SLEEP 500
   BUTTON$ = GetiOSMessageBoxValues("button")
WEND
IF BUTTON$ = "1" ....     ---> The user has pressed the button for "Cancel" the input...
   ....
ENDIF
IF BUTTON$ = "0" ....    ---> The user has pressed the button for "Send" the input...
   MESSAGE$ = GetiOSMessageBoxValues("text")
   ....
   PRINT MESSAGE$, 100, 100
   SHOWSCREEN
ENDIF

   

There could be several ways to do that...    but before, the current code should be completed to work fine...

Also may be that Trucidare or Gernot have a complete code that works, and we were redesigning the "wheel"...  :P

Anyway, thanks for your suggestions and interest, I'm sure that someone may have an easy solution to complete the code correctly and we could complete the functions in the better possible way to obtaining all data and events.
« Last Edit: 2011-Feb-18 by DaCarSoft »
"Si quieres resultados distintos... no hagas siempre lo mismo" - Albert Einstein.

Offline Hark0

  • Prof. Inline
  • *****
  • Posts: 1020
  • Geek Developer
    • View Profile
    • LitioPixel - Desarrollo de videojuegos con GLBasic | Videogame development with GLBasic
No acabo de entender porqué hay un bucle...

Me explico, ¿no valdría con hacer la llamada y listos? ¿No se detiene la aplicación en espera del resultado de la llamada a GetiOSMessageBoxValues()?
-----
I can not understand why there is a loop ...

I mean, would it not be to make the call and ready? Can not stop the application pending the outcome of the call to GetiOSMessageBoxValues ()?
-----

Ejemplo:

while mainbucle
...
...
render()
...
LOCAL boton=GetiOSMessageBoxValues("mensaje") // Pausa?????? Pause??????

IF boton=0 THEN PRINT "Botón OK",x,y
IF boton=1 THEN PRINT "Botón Cancelar",x,y
...
...
wend


http://litiopixel.blogspot.com
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica Development Indie Videogames · Pixel-Art · Retrocomputing · Electronic

Offline Moebius

  • Dr. Type
  • ****
  • Posts: 315
    • View Profile
Quote
Can not stop the application pending the outcome of the call to GetiOSMessageBoxValues ()
DaCar can do that, I think he just wants to get the text returned completely well first.
Endless Loop: n., see Loop, Endless.
Loop, Endless: n., see Endless Loop.
- Random Shack Data Processing Dictionary

Offline DaCarSoft

  • Community Developer
  • Mr. Polyvector
  • ******
  • Posts: 182
    • View Profile
Hola!  =D

Con el código del primer post tal cual, cuando se llama a GetiOSMessageBoxValues, éste devuelve el valor de la variable "resString" hasta ese justo instante, pero la llamada al "alertbox" es un proceso independiente al código de GLBasic, por lo que de alguna forma hay que esperar hasta que el valor de la variable sea el adecuado. Quizá se podría insertar un bucle en el código de GetiOSMessageBoxValues en XCode, para provocar el mismo efecto de espera desde fuera del código GLBasic, pero puede ser util que sean "asíncronos" en algunas condiciones (por ejemplo, para mover el fondo de la pantalla por detras de la ventana en tu juego, mientras se sigue a la espera de la introducción total de datos por parte del usuario), algo así como unas estrellas moviéndose mientras suena la música, ya sabes.   :P

Translation:

Hello!  =D
In the code of the first post as is, when GetiOSMessageBoxValues is called, it returns the value of the "resString" variable in that precise instant. But the call to the "alertbox" is an independent thread to the GLBasic code, because of that you need to wait in any way until the value obtained is the needed. Perhaps it is possible to insert a loop in the code of GetiOSMessageBoxValues under XCode, to create the same wait effect out of the GLBasic code, but it can be handy that asynchrony under certain conditions (for example, to move the background of your game behind the alert, while it continues waiting the user to complete the total input of data). Something like stars moving while the music is playing, you know.   :P
"Si quieres resultados distintos... no hagas siempre lo mismo" - Albert Einstein.

Offline trucidare

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1377
  • Bachelor of Fail
    • View Profile
set a var after calling show - get value of this var in glb and wait until the var is 0 - then glbasic would run normaly after set the var to 0 if a button was clicked

int __iStat = 0;

in the messagebox function set the var to 1 and set to 0 in the event callback.

in glbasic
while the var is 1
    showscreen
wend
MacBook Pro 2,2 GHz Core 2 Duo, 4 GB RAM, 160 GB HDD, 8600M GT
Core i3 - 3,07 GHz, 8 GB Ram, 2.5 TB HDD, Geforce GTX 260+ OC

Offline DaCarSoft

  • Community Developer
  • Mr. Polyvector
  • ******
  • Posts: 182
    • View Profile
Thanks Trucidare, I was thinking in using the ".tag" property also making some changes in the code.

I'm focused in solve some troubles with the code, it's to say:

-Under the iPad does not work (iOS 4.2.1 and GLBasic 9.006) it appears to be a problem with "addSubView" but under iPhone, iPod or iPhone 4 the code shows correctly the Alert and gives me the text value.

-I don't know how to work with non english characters.

-I don't know how to avoid the fail when you call to the Alert for a second time... (The second alert freezes when you press a first letter).


This is the code in working, yet unfinished:

for the .mm file:
Code: GLBasic [Select]
#if defined (TARGET_OS_IPHONE)
#import <UIKit/UIAlert.h>


@interface GLBasicMessageBoxer: NSObject <UIAlertViewDelegate>
{
        UITextField* txtValue;
        NSString* resButton;
}
- (void)showAlert:(NSString*)pTitle andMessage:(NSString*)pMessage andLabels:(NSString*)pLabels andButtons:(NSString*)pButtons;
- (const char*)getValue;
@end

@implementation GLBasicMessageBoxer

- (void)showAlert:(NSString*)pTitle andMessage:(NSString*)pMessage andLabels:(NSString*)pLabels andButtons:(NSString*)pButtons
{
       
        UIAlertView* alert = [[UIAlertView alloc] init];
        alert.title = pTitle;
        alert.message = pMessage;
        alert.delegate = self;
       
        NSArray* aButtons = [pButtons componentsSeparatedByString:@"$"];
        for (NSString* iObject in aButtons){
                [alert addButtonWithTitle:iObject];
        }
       
        if (pLabels != @"") {
                double iPos = 70.0;
                NSArray* aLabels = [pLabels componentsSeparatedByString:@"$"];
                for (NSString* iObject in aLabels){
                        txtValue = [[UITextField alloc] init];
                        txtValue.frame = CGRectMake(12.0, iPos, 260.0, 25.0);
                        txtValue.placeholder = iObject;
                        txtValue.backgroundColor = [UIColor whiteColor];
                        txtValue.clearButtonMode = UITextFieldViewModeWhileEditing;
                        txtValue.keyboardType = UIKeyboardTypeAlphabet;
                        txtValue.keyboardAppearance = UIKeyboardAppearanceAlert;
                        txtValue.autocapitalizationType = UITextAutocapitalizationTypeNone;
                        txtValue.autocorrectionType = UITextAutocorrectionTypeNo;
                        txtValue.borderStyle = UITextBorderStyleLine;

                        if (iPos == 70.0) {
                                [txtValue becomeFirstResponder];
                        }
                        iPos = iPos + 30.0;
                       
                        [alert addSubview:txtValue];

                       
                }
               
        }
       
        [alert show];
        [alert release];
}

- (void)alertView:(UIAlertView*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
                resButton = [NSString stringWithFormat:@"%d", buttonIndex];
}

- (const char*)getValue
{
        if (resButton != NULL){
                return [txtValue.text UTF8String];
        }
        else
        {
                return "";
        }
}

@end

GLBasicMessageBoxer* newAlert;

extern "C" void iOSMessageBox(const char* pTitle, const char* pMessage, const char* pLabels, const char* pButtons)
{
        newAlert = [[GLBasicMessageBoxer alloc]init];
        [newAlert showAlert:[NSString stringWithUTF8String:pTitle] andMessage:[NSString stringWithUTF8String:pMessage] andLabels:[NSString stringWithUTF8String:pLabels] andButtons:[NSString stringWithUTF8String:pButtons]];
}

extern "C" const char* GetiOSMessageBoxValues()
{
        return [newAlert getValue];
}

#endif
 

And this, the code for GLBasic:
Code: GLBasic [Select]
        GLOBAL MESSAGE$

        IMPORT "C" void iOSMessageBox(const char*,const char*, const char*, const char*)

        IMPORT "C" const char* GetiOSMessageBoxValues()


        iOSMessageBox("TITLE","Message..." + CHR$(0xD) + CHR$(0xD), "This is a test$and this...", "OK$CANCEL")

        WHILE MESSAGE$ = ""
                SLEEP 500

                MESSAGE$ = GetiOSMessageBoxValues()
        WEND

        PRINT MENSAJE$, 100, 100
        SHOWSCREEN

        MESSAGE$ = ""

        iOSMessageBox("TITLE2","Message2..." + CHR$(0xD) + CHR$(0xD), "This is a 2nd test$and this...", "OK2$CANCEL2")

        WHILE MESSAGE$ = ""
                SLEEP 500

                MESSAGE$ = GetiOSMessageBoxValues()
        WEND

        PRINT MESSAGE$, 200, 200
        SHOWSCREEN

 


Can someone help a little?????

Regards.


« Last Edit: 2011-Feb-22 by DaCarSoft »
"Si quieres resultados distintos... no hagas siempre lo mismo" - Albert Einstein.

Offline Millerszone

  • Dr. Type
  • ****
  • Posts: 307
  • www.smashedfly.com
    • View Profile
    • Smashed Fly
I have the above code working on the iphone, I'm only using in message.

I have a couple of questions:
If i press OK or Cancel with the text field blank, the screen is blank.

Is it possible to show a background image while the keyboard and messagebox are displayed?

Can the keyboard and messagebox work in landscape mode?

thanks



Hardware: iMac 27", MacBook Air, PC 3.5Ghz Quad
Developing Tools: GLBasic SDK, Gideros Studio, PureBasic
Developing for: iOS, Android, Windows, OS X, webOS, HTML5

Offline trucidare

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1377
  • Bachelor of Fail
    • View Profile
in the while where to wait until ok was pressed only make a set bmp or something similar don't forget to make show screen.
MacBook Pro 2,2 GHz Core 2 Duo, 4 GB RAM, 160 GB HDD, 8600M GT
Core i3 - 3,07 GHz, 8 GB Ram, 2.5 TB HDD, Geforce GTX 260+ OC

Offline trucidare

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1377
  • Bachelor of Fail
    • View Profile
First DaCarSoft - Nice try! some little changes - Untested - please test someone!


Code: GLBasic [Select]
#if defined (TARGET_OS_IPHONE)
#import <UIKit/UIAlert.h>


@interface GLBasicMessageBoxer: NSObject <UIAlertViewDelegate>
{
        UITextField* txtValue;
        NSString* resButton;
        int response;
}
- (void)showAlert:(NSString*)pTitle andMessage:(NSString*)pMessage andLabels:(NSString*)pLabels andButtons:(NSString*)pButtons;
- (const char*)getValue;
@end

@implementation GLBasicMessageBoxer

- (void)showAlert:(NSString*)pTitle andMessage:(NSString*)pMessage andLabels:(NSString*)pLabels andButtons:(NSString*)pButtons
{
       
        UIAlertView* alert = [[UIAlertView alloc] init];
        response = 1;
        alert.title = pTitle;
        alert.message = pMessage;
        alert.delegate = self;
       
        NSArray* aButtons = [pButtons componentsSeparatedByString:@"$"];
        for (NSString* iObject in aButtons){
                [alert addButtonWithTitle:iObject];
        }
       
        if (pLabels != @"") {
                double iPos = 70.0;
                NSArray* aLabels = [pLabels componentsSeparatedByString:@"$"];
                for (NSString* iObject in aLabels){
                        txtValue = [[UITextField alloc] init];
                        txtValue.frame = CGRectMake(12.0, iPos, 260.0, 25.0);
                        txtValue.placeholder = iObject;
                        txtValue.backgroundColor = [UIColor whiteColor];
                        txtValue.clearButtonMode = UITextFieldViewModeWhileEditing;
                        txtValue.keyboardType = UIKeyboardTypeAlphabet;
                        txtValue.keyboardAppearance = UIKeyboardAppearanceAlert;
                        txtValue.autocapitalizationType = UITextAutocapitalizationTypeNone;
                        txtValue.autocorrectionType = UITextAutocorrectionTypeNo;
                        txtValue.borderStyle = UITextBorderStyleLine;

                        if (iPos == 70.0) {
                                [txtValue becomeFirstResponder];
                        }
                        iPos = iPos + 30.0;
                       
                        [alert addSubview:txtValue];

                       
                }
               
        }
       
        [alert show];
        [alert release];
}

- (void)alertView:(UIAlertView*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
                resButton = [NSString stringWithFormat:@"%d", buttonIndex];
                response = 0;
}

- (const char*)getValue
{
        if (resButton != NULL){
                return [txtValue.text UTF8String];
        }
        else
        {
                return "";
        }
}

- (int)getResponse {
        return response;
}

@end

GLBasicMessageBoxer* newAlert;

extern "C" void iOSMessageBox(const char* pTitle, const char* pMessage, const char* pLabels, const char* pButtons)
{
        newAlert = [[GLBasicMessageBoxer alloc]init];
        [newAlert showAlert:[NSString stringWithUTF8String:pTitle] andMessage:[NSString stringWithUTF8String:pMessage] andLabels:[NSString stringWithUTF8String:pLabels] andButtons:[NSString stringWithUTF8String:pButtons]];
}

extern "C" const char* GetiOSMessageBoxValues()
{
        return [newAlert getValue];
}

extern "C" int GetiOSMessageState() {
        return [newAlert getResponse];
}

#endif

and the GLB Sample:

Code: GLBasic [Select]
AUTOPAUSE FALSE
SYSTEMPOINTER TRUE

IMPORT "C" void iOSMessageBox(const char*,const char*, const char*, const char*)
IMPORT "C" const char* GetiOSMessageBoxValues()
IMPORT "C" int GetiOSMessageState()

WHILE TRUE
      MOUSESTATE mx,my,b1,b2
      IF b1 THEN DoInput()
      SHOWSCREEN
WEND

FUNCTION DoInput:
       iOSMessageBox("Hallo","Welt","Need some","Input")
       WHILE GetiOSMessageState()
               SETBMP "Abackground.bmp"
               SHOWSCREEN
       WEND
       IF ret$ = GetiOSMessageBoxValues()
              PRINT ret$,0,0
       ENDIF
ENDFUNCTION

 
« Last Edit: 2011-Mar-02 by trucidare »
MacBook Pro 2,2 GHz Core 2 Duo, 4 GB RAM, 160 GB HDD, 8600M GT
Core i3 - 3,07 GHz, 8 GB Ram, 2.5 TB HDD, Geforce GTX 260+ OC

Offline Millerszone

  • Dr. Type
  • ****
  • Posts: 307
  • www.smashedfly.com
    • View Profile
    • Smashed Fly
trucidare I tested your code, few problems.

When I compile in Xcode I get this error on all the "self.response"
Here is the error: "Object cannot be set - either readonly property or no setter found"

So I removed all the "self." I get no errors in xcode, but I see no text on the screen after I hit submit,
then if I touch the screen again, the keyboard pops back up, the first letter I type, the program locks up.
This is probably do to me removing the "self."

Also when I first load the app the screen is blank until I touch the screen.

Thanks for working on the iphone keyboard, it's a lot better than messing with a custom keyboard.

This is what it looks like so far:
Hardware: iMac 27", MacBook Air, PC 3.5Ghz Quad
Developing Tools: GLBasic SDK, Gideros Studio, PureBasic
Developing for: iOS, Android, Windows, OS X, webOS, HTML5

Offline trucidare

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1377
  • Bachelor of Fail
    • View Profile
uhm ok so i have to test it myself to avoid these problems. thanks for testing.
MacBook Pro 2,2 GHz Core 2 Duo, 4 GB RAM, 160 GB HDD, 8600M GT
Core i3 - 3,07 GHz, 8 GB Ram, 2.5 TB HDD, Geforce GTX 260+ OC

Offline trucidare

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1377
  • Bachelor of Fail
    • View Profile
ok i´m working on this - but there are some problems with compiling :/ i think its because iphone is jailbroken.
sorry for waiting :/

EDIT:// OK found something - i forgot to run this code in main thread. sorry update is comming.
« Last Edit: 2011-Mar-02 by trucidare »
MacBook Pro 2,2 GHz Core 2 Duo, 4 GB RAM, 160 GB HDD, 8600M GT
Core i3 - 3,07 GHz, 8 GB Ram, 2.5 TB HDD, Geforce GTX 260+ OC

Offline Millerszone

  • Dr. Type
  • ****
  • Posts: 307
  • www.smashedfly.com
    • View Profile
    • Smashed Fly
ok i´m working on this - but there are some problems with compiling :/ i think its because iphone is jailbroken.
sorry for waiting :/

EDIT:// OK found something - i forgot to run this code in main thread. sorry update is comming.

Cool, i'll be here to test.
Hardware: iMac 27", MacBook Air, PC 3.5Ghz Quad
Developing Tools: GLBasic SDK, Gideros Studio, PureBasic
Developing for: iOS, Android, Windows, OS X, webOS, HTML5