2011-01-12 199 views
0

我想爲我的應用製作自定義鍵盤,並且希望使用發送按鈕來設置字符。自定義iphone鍵盤

如果我將所有的按鈕都命名爲例如* a,* b,* c,* d等將會有一個帶有發件人的IBAction,它抓住例如* a> a?如果是這樣,這是如何完成的。

此外,按鈕可以命名如下* 0,* 1,* 2而不是*零,* 1,* 2?

感謝

回答

1

不,變量實際上並不這樣。您將對象本身與指向它的變量的名稱混淆。當你的IBaction傳遞給UIButton對象時,它不會傳遞一個變量名稱,你的方法定義了引用它的變量sender。並且,變量名稱不能以Objective C中的數字開頭。

以這種方式區分按鈕的常用方法是在其上設置標籤和分支。或者,你可以訪問標題 - 這取決於你在做什麼。

1

如果你的意思是你想在同一IBAction爲指向多個UIButtons然後提取該按鈕的文本標籤,你可以簡單地使用發件人的currentTitle財產。

例如:

- (IBAction)padButtonClicked:(id)sender { 
    NSLog(@"Button pressed: %@", [sender currentTitle]);  
} 
+0

謝謝,和命名?可以一個按鈕被命名爲* 0 – jarryd 2011-01-12 18:06:50

+0

@alJaree這只是一個文本標籤,所以我不明白爲什麼不。 – 2011-01-12 18:08:06

+0

是否需要對當前標題進行某種類型的檢查,還是全部採用字符串格式? – jarryd 2011-01-12 18:12:06

1

您最好使用標籤爲您的按鈕。

- (IBAction)buttonTapped:(id)sender { 

    NSLog(@"Button pressed: %i", sender.tag);  

    switch (sender.tag) { 

     case 0: 
      /* Button A Pressed */ 
      break; 
     case 1: 
      /* Button B Pressed */ 
      break; 

     /* and so forth... */ 
    } 
} 

您將需要在Interface Builder中或以編程方式設置標籤。