簡體   English   中英

SetTitle 不會更改 UIButton 的文本

[英]SetTitle Doesn't Change the Text of a UIButton

非常直接; 只是試圖將我的按鈕的顯示名稱從“按鈕”更改為“a”。 但是 setTitle 方法似乎沒有做任何事情。 我玩弄了 UIState,這似乎沒有太大變化。

我可能需要合成任何東西嗎?

[Button1 setTitle:@"a" forState:UIControlStateNormal];

編輯:我做了一個 NSLog,按鈕顯示為 NULL,我被告知這意味着它沒有正確連接。 但我仔細檢查了我的連接檢查器,查看了 H 文件,一切似乎都連接正常。 ( http://imgur.com/EFsp51U ) 我錯過了什么?

H 文件和連接檢查器

如果你已經在 Interface Builder 中創建了你的按鈕,那么去那里並將其類型更改為自定義。

在此處輸入圖片說明

還要檢查您是否正確連接了IBOutlet

我仔細研究了我的代碼,在我的 viewDidLoad 方法中,我有以下內容:

Button1 = NO;

我想我是在嘗試輸入“selected”但心煩意亂而沒有回到它,因此無意中關閉了我自己的按鈕。 正確的代碼是:

self.Button1.selected=NO;

[self.Button1 setTitle:@"a" forState:UIControlStateNormal];
  • 確保Button1nil
  • 確保 Button1.hidden = NO;

確保你已經合成了你的按鈕。

//this assumes you have a button "myButton" declared in your interface file
@implementation
@synthesize myButton;

-(void) myMethod{
    [myButton setTitle:@"The new Title" forState:UIControlStateNormal];
}
@end

您應該將您的按鈕通過 IB 插座連接到您的 .h 文件完全通過代碼創建按鈕。

此外,最好不要讓變量名以大寫字母開頭。

我不確定問題出在線程上,但您可能想嘗試在主線程上設置標題:

dispatch_async(dispatch_get_main_queue(), ^{
    [Button1 setTitle:@"a" forState:UIControlStateNormal];
});

請執行下列操作:

  1. NSLog(@"%@", Button1);

    並檢查它不是零。

  2. 檢查一下

    NSLog(@"%d", btn.state);

    應該返回0。

您的代碼完全有效。 但是為了確保一切正常,請添加以下額外行,

Button1.selected = NO;
[Button1 setTitle:@"a" forState:UIControlStateNormal];

如果您還沒有明確合成它,那么您應該調用

[_Button1 setTitle:@"a" forState:UIControlStateNormal];

或者

[self.Button1 setTitle:@"a" forState:UIControlStateNormal];

暫無
暫無

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

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