Hirdetés

Alkalmazásfejlesztés badára: A virtuális billentyűzet alfajai

A minap egy olyan problémába futottam, hogy az egyik beviteli mezőmbe (Osp::Ui::Controls::EditField) csak számok kerülhetnek, így magától értetődőnek tűnt, hogy jó lenne a virtuális billentyűzetet is numerikussá tenni. Egy kis kutakodás után rá is jöttem a megoldásra, valamint néhány további testreszabási opcióra is fény derült.

Az EditField SetInputModeCategory függvényét kell meghívnunk, a metódus két bemenő paraméterrel operál. Az első a gombsor típusa, a második pedig egy boolean. Utóbbi szerepe, hogy a megadott típusokon kívül minden más lehetséges kiosztást letilt, vagy engedélyez, attól függően, hogy igazra vagy hamisra billentettük a bitet.

Egyszerre többet is megadhatunk a vagy operátorral (azaz a | karakterrel), tehát például a

SetInputModeCategory(EDIT_INPUTMODE_NUMERIC|EDIT_INPUTMODE_SYMBOL,true);

sor azt jelenti, hogy a számbillentyűs és a szimbólumokat tartalmazó kiosztásokat engedélyeztük, a másik kettő pedig le van tiltva, azaz a felhasználó manuálisan sem használhatja őket az adott beviteli mezőnA négy lehetséges típus igencsak beszédes neveket kapott, a betűket, a prediktív módot, számgombokat és speciális karaktereket tartalmazó kiosztások között válogathatunk.

  • EDIT_INPUTMODE_ALPHA
  • EDIT_INPUTMODE_PREDICTIVE
  • EDIT_INPUTMODE_NUMERIC
  • EDIT_INPUTMODE_SYMBOL

Hasznos, hogy ezt a tulajdonságot menet közben is megváltoztathatjuk, nem úgy, mint a mező és a virtuális klaviatúra stílusát. Ezeket az EditField konstruktorában adhatjuk meg, az Osp::Ui::Controls::EditFieldStyle által jellemzett stílus lehet normál, e-mail, URL vagy jelszó (ekkor a karakterek helyett csillagok jelennek meg a mezőben), az Osp::Ui::Controls::InputStyle-lal állítható billentyűzetstílus pedig lehet fél képernyős (INPUT_STYLE_OVERLAY), vagy akár a teljes kijelzőt (INPUT_STYLE_FULLSCREEN) is elfoglalhatja.

dr. Kind

Azóta történt

Előzmények