簡體   English   中英

在其點擊事件中設置 UIButton 標題的問題

[英]Issues in setting UIButton title in its click event

當用戶使用以下代碼按下按鈕時,我正在嘗試更改按鈕的標題:

- (IBAction) hideKB: (UIButton *) sender {
     sender.titleLabel.text = @"↓";
}

但是當我點擊應用程序崩潰時,我不明白為什么。

刪除發件人的東西,按鈕沒有問題。

動作的正確方法簽名是

- (IBAction)action:(id)sender

您的應用程序正在崩潰,因為您的 object 正在收到一條它不理解的消息。

嘗試用以下內容替換您的代碼:

- (IBAction)hideKB:(id)sender {
    UIButton *button = (UIButton *)sender;
    [button setTitle:@"↓" forState:UIControlStateNormal];
}

您可能會注意到,我還更改了設置按鈕標題的行。 這是因為您不應該直接操作UIButtontitleLabel屬性,而是應該使用適當的設置方法,如上所示。

編輯:為了澄清,大多數控件將允許您使用點表示法來編輯其titleLabeltext屬性。 但是, UIButton實例支持不同的標題(以及圖像和背景圖像),具體取決於它們所在的 state。

如果您想知道為什么UIButton可能處於幾種不同狀態之一,您經常看到的一個很好的例子是“灰色”按鈕。 這意味着這些按鈕位於UIControlStateDisabled state 中。 您可以在文檔中找到控件的所有可能狀態的列表。

你可以嘗試:

[(UIButton *)sender setTitle: @"↓"" forState: UIControlStateNormal];

更多信息可以參考setTitle:forState: 在 UIButton Class 參考

希望這可以幫助。

嘗試使用

 - (void)setTitle:(NSString *)title forState:(UIControlState)state

例如

 [sender setTitle:"↓" forState:UIControlStateNormal];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM