我正在創建計算器應用程序,計算器屏幕是UILabel。我在使用刪除鍵時遇到問題。這是我的代碼:代碼正確時,UILabel中的刪除鍵不起作用
.H
IBOutlet UILabel *display;
.M
- (IBAction)Del
{
[display.text substringToIndex:display.text.length -1];
}
它沒有錯誤,並在模擬器上運行完全,但實際上並沒有正常工作。任何人都可以幫忙
我正在創建計算器應用程序,計算器屏幕是UILabel。我在使用刪除鍵時遇到問題。這是我的代碼:代碼正確時,UILabel中的刪除鍵不起作用
.H
IBOutlet UILabel *display;
.M
- (IBAction)Del
{
[display.text substringToIndex:display.text.length -1];
}
它沒有錯誤,並在模擬器上運行完全,但實際上並沒有正常工作。任何人都可以幫忙
你忽略了substringToIndex:
方法的返回值,你不更新標籤的文本。
你想是這樣的:不要試圖從空標籤刪除
- (IBAction)Del {
NSString *oldText = display.text;
if (oldText.length > 0) {
NSString *newText = [oldText substringToIndex:oldText - 1];
display.text = newText;
}
}
這也警衛。
-substringToIndex:
創建它發送到的字符串的一部分的副本。
你在這裏創建了這樣一個字符串,並且什麼也不做。
我懷疑你想該字符串分配到的東西,比方說,display.text
屬性:
- (IBAction)Del {
display.text = [display.text substringToIndex:display.text.length -1];
}
@OnkaPlonka Shorter並不意味着更好。看看當標籤爲空時點擊刪除按鈕會發生什麼。其他代碼將崩潰。 – rmaddy
這是非常完美的 – OnkaPlonka