HTML

Hackstock

Hack the planet! Hackers unite!

Címkék

Címkefelhő

UIKeyboard avagy szaporítsuk a szót

2007.12.19. 17:41 :: theshadow

Azon gondolkoztam, hogy ha már szöveget tudunk megjeleníteni, akkor foglalkoznunk kellene a bevitellel is. Ennek az eszköze a billentyűzet, amely szintén View-ként működik a telefonon.
Szerintem ezzel nagyon sokat elárultam róla, hogy hogyan kell használni, elhelyezni. Fontos megjegyezni, hogy mielőtt allokálnánk és inicializálnánk egy példányt, szükség van egy statikus inicializálásra is. Egyes írások szerint az initWithFrame hívása előtt kell ezt elvégezni. Ez sem bonyolult.
[UIKeyboard initImplementationNow];
Az inicializáláshoz szükségünk van az objektum méreteire is.
CGSize kbSize = [UIKeyboard defaultSize]; Ezen túl van egy másik függvény is, ami az adott pozícióba elforgatott kijelzőnem megfelelően forgatott billentyűzet méreteit adja meg. Ez a függvény a defaultSizeForOrientation és paraméterként az accelerometernél látott diszkrét forgatási paramétereknek megfelelő értéket várja.
Tegyünk ki egy View-t és egy billentyűzetet! Én ezt így oldottam meg.
    UITextView *tvMessage;
    UIKeyboard *kbKeyboard;

    UIView *vMain = [[UIView alloc]  initWithFrame: rect];

    [...]

    tvMessage = [[UITextView alloc] initWithFrame: CGRectMake(0.0f,0.0f,rect.size.width,rect.size.height - kbSize.height)];
   
    kbKeyboard = [[UIKeyboard alloc] initWithFrame: CGRectMake(0.0f,rect.size.height - kbSize.height,rect.size.width,rect.size.height)];

    [...]

    [vMain addSubview: tvMessage];
    [vMain addSubview: kbKeyboard];
   
    [window setContentView: vMain];
Mondhatni, hogy ezzel készen is vagyunk. Őszintén szólva, amikor nekiálltam az eszköz használatának tanulmányozásához azt vártam, hogy nekem kell elkapkodni a billentyűleütéseket egy callback függvénnyel. De nem! Ennél sokkal egyszerűbben működik. Ahol áll a kurzor, ott szerkeszi a mezőt - abban az esetben, ha az szerkeszthető - csak bele kell bökni, hogy megjelenjen a kurzor és már lehet is pötyögni.
   
Ezen túl még szabályozhatjuk, hogy a "return" gomb milyen felirattal illetve formában jelenjen meg. A setDefaultReturnKeyType metódusnak adott értékkel állíthatjuk be, amire a következő enumerációs típust vezettem be.
typedef enum
{
  UIKeyboardReturnKeyReturn = 0,    // Return (gray background)
  UIKeyboardReturnKeyGo = 1,            // Go (blue background)
  UIKeyboardReturnKeyGoogle = 2,    // Google (blue background)
  UIKeyboardReturnKeyJoin = 3,        // Join (blue background)
  UIKeyboardReturnKeyNext = 4,        // Next (gray background)
  UIKeyboardReturnKeyRoute = 5,        // Route (blue background)
  UIKeyboardReturnKeySearch = 6,    // Search (blue background)
  UIKeyboardReturnKeySend = 7,        // Send (blue background)
  UIKeyboardReturnKeyYahoo = 8        // Yahoo! (blue background)
} UIKeyboardReturnKeyType;
Van még egy setPreferredKeyboardType metódus, amivel elméletileg a billentyűzet típusát lehet beállítani. Azért írtam, hogy elméletileg, mert nekem nem sikerült viszont találtam róla leírást. Meg kell jegyezni, hogy a beállítás megtétele után a showPreferredLayout eljárást is meg kell hívni, hogy érvényesüljön.
    [kbKeyboard setPreferredKeyboardType:UIKeyboardBlackDefault];
    [kbKeyboard showPreferredLayout];
Ezekre az értékekre is elkészítettem az enumerációs típust.
typedef enum
{
  UIKeyboardDefault = 0,                // default QWERTY layout
  UIKeyboardNumeric = 1,                // numeric/punctuation layout
  UIKeyboardPhone = 2,                    // phone keypad
  UIKeyboardURL = 3,                        // URL layout
  UIKeyboardSMS = 4,                        // SMS (?) layout, shift disabled, num key goes to phone keypad
  UIKeyboardBlackDefault = 5,        // black version of default layout
  UIKeyboardSpartan = 6,                // spartan phone keypad
  UIKeyboardBlackSpartan = 7,        // black spartan (clean!)
  UIKeyboardEmailWithSpace = 8,    // email keypad w/ space key
  UIKeyboardEmailWithAt = 9            // email keypad w/ @ instead of space
} UIKeyboardType;
Ha valaki ez utóbbiba életet tud lehelni, nyugodtan jelezzen. ...és egyébként is hozzá lehet szólni, kérdezni vagy jelezni, hogy mit látna a nagyérdemű szívesen.

Szólj hozzá!

Címkék: iphone appdev

A bejegyzés trackback címe:

https://hackstock.blog.hu/api/trackback/id/tr4269613

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.