2012-11-27 59 views
1

我正在創建計算器應用程序,計算器屏幕是UILabel。我在使用刪除鍵時遇到問題。這是我的代碼:代碼正確時,UILabel中的刪除鍵不起作用

.H

IBOutlet UILabel *display; 

.M

- (IBAction)Del 
{ 
    [display.text substringToIndex:display.text.length -1]; 
} 

它沒有錯誤,並在模擬器上運行完全,但實際上並沒有正常工作。任何人都可以幫忙

回答

1

你忽略了substringToIndex:方法的返回值,你不更新標籤的文本。

你想是這樣的:不要試圖從空標籤刪除

- (IBAction)Del { 
    NSString *oldText = display.text; 
    if (oldText.length > 0) { 
     NSString *newText = [oldText substringToIndex:oldText - 1]; 
     display.text = newText; 
    } 
} 

這也警衛。

+1

@OnkaPlonka Shorter並不意味着更好。看看當標籤爲空時點擊刪除按鈕會發生什麼。其他代碼將崩潰。 – rmaddy

+0

這是非常完美的 – OnkaPlonka

2

-substringToIndex:創建它發送到的字符串的一部分的副本。

你在這裏創建了這樣一個字符串,並且什麼也不做。

我懷疑你想該字符串分配到的東西,比方說,display.text屬性:

- (IBAction)Del { 
    display.text = [display.text substringToIndex:display.text.length -1]; 
}