[Mono-osx] Numbers only input validation code for using with NSTextField using Monobjc
Nick Ifloat
ifloat at gmail.com
Mon Dec 15 01:02:46 EST 2008
Please help me with building an equivalent to the Numbers only input
validation code for using with NSTextField using Monobjc.
Case: I want the NSTextField to allow the user to input only numbers(0 to
9), '.' and '-' symbols.
Request: Well I am stuck. I am able to handle key press events in Windows
Forms and Gtk#. But I am new to Mac OS X and need your help with building an
equivalent method to handle key press events on Mac OS X using Monobjc. I am
providing my sample code of key press event handler using Windows Forms and
Gtk# bellow. (I have read about NSFormater, NSCell, NSView's keyDown method
- but I can't seem to find my way on doing the same using Monobjc!)
Provided: 1. Windows Forms & 2. Gtk# numbers only input sample code.
Need: Monobjc code for numbers only input validation sample code.
//Windows Forms Code to handle KeyPressEvents
private void OnlyNumbers(KeyPressEventArgs e)
{
char c = e.KeyChar;
if (!(c >= '0' && c <= '9' || c == '.' || c == '-' || c == 8))
//8 is the keycode of the backspace key
{
e.Handled = true;
}
}
//Then I am calling the method on the text fields KeyPress handler
private void txtNumber_KeyPress(object sender, KeyPressEventArgs e)
{
OnlyNumbers(e);
}
//End of Windows Forms Code
//Gtk# Code to handle/capture & kill Unwanted Keys
private void OnlyNumbers(object o, Gtk.TextInsertedArgs
args)//[GLib.ConnectBefore]Gtk.
{
try
{
Console.WriteLine("text : " + args.Text.ToString());
int pos = ((Entry)o).Position;
string c = ((Entry)o).GetChars(pos, pos+1);
char d;
Char.TryParse(c[0].ToString(), out d);
if (!(d >= '0' && d <= '9' || d == '.' || d == '-'))
{
((Entry)o).SelectRegion(pos, pos+1);
((Entry)o).DeleteSelection();
}
}
catch (System.IndexOutOfRangeException e) {}
}
//Then I am passing the method to the textfields OnTextInserted event
handler
protected virtual void txtNumber_OnTextInserted (object o,
Gtk.TextInsertedArgs args)
{
OnlyNumbers(o, args);
}
//End of Gtk# code
--
View this message in context: http://www.nabble.com/Numbers-only-input-validation-code-for-using-with-NSTextField-using-Monobjc-tp21008715p21008715.html
Sent from the Mono - OSX mailing list archive at Nabble.com.
More information about the Mono-osx
mailing list