2011-04-20 36 views
1

我有兩個UILabels在視圖中顯示我的樂隊和歌曲名稱作爲字符串。我正在努力添加選項來手動更改這些字符串中的任何一個。我想保持原樣,並且我已經添加了2個按鈕來手動輸入歌曲名稱或樂隊名稱。事情是,所有的文本編輯,據我所知,它需要有實際的TextField或TextView來調出鍵盤等。文本條目ios問題

我只想觸摸一個按鈕「輸入歌名」,並給予鍵盤並且當輸入被擊中時,用該字符串替換uilabel中的字符串,並輸入band名稱uibutton,然後再次更改uilabel。

問題是在文檔中,我真的不知道如何做到這一點。有沒有人有關於iOS中的文本輸入的想法,並可以給我一個關於如何做到這一點的指針/提示?

回答

1

您將不得不做的是用文本字段替換標籤,並將其設置爲用戶按下按鈕時的第一個響應者。您將需要一個類,它是文本字段的委託,因此您可以在textFieldShouldReturn方法中處理輸入,以便在文本字段中退出第一響應者(關閉鍵盤),並將文本字段更改回標籤視圖並更新其內容。

3

只需要聲明的標籤全局和實施方法落實 採取一切歌和陣列 所有專輯數據,並使用

  • (無效)的委託方法顯示在現在表視圖 所有數據的tableView:(UITableView的*)的tableView didSelectRowAtIndexPath方法:(NSIndexPath *)indexPath 更改標籤的文本爲u想
@interface songViewController() 
{ 
UILabel *bandLabel; 
UILabel *songLabel; 
NSArray *bandData; 
NSArray *songData; 
} 
@end 
@implementation songCreateViewController 
- (void)viewDidLoad { 
    [super viewDidLoad]; 
{ 
    bandLabel=[[UILabel alloc]init]; 
    bandLabel.frame=CGRectMake(40, 580, 500, 30); 
    [email protected]"Join group as"; 
    [self.view addSubview:bandLabel]; 

    songLabel=[[UILabel alloc]init]; 
    songLabel.frame=CGRectMake(40, 580, 500, 30); 
    [email protected]"Join group as"; 
    [self.view addSubview:songLabel]; 
} 
    #pragma mark Table view Delegate 
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if(tableView==albumTableView) 
    { 
     bandLabel.text=[bandData objectAtIndex:indexPath.row]; 
    } 
    else 
     if(tableView==songTableView) 
    { 
     songLabel.text=[songData objectAtIndex:indexPath.row]; 
    } 
@end 
+0

這是相當不錯的,但不是正確的問題是什麼。但如果有人想根據行名更改標籤,它將會有所幫助。 – 2015-10-20 05:40:40

1

它可以通過多種方式實現..

1)你可以使用你的按鈕方法隱藏隱藏標籤和顯示的TextView。

2)您可以使用textField代替標籤,使textfield.editable = NO,當按下按鈕時,只需清除文本框textfield.text = nil並使文本框可編輯。

試試這些......