2013-12-09 42 views
1

我陷入UITtextfield文本問題。這是一個分割視圖應用程序,詳細視圖是具有自定義單元格的表格視圖。在自定義單元格中,我有一個文本框,當我點擊文本框時,它將導航到另一個具有值列表的表格,我需要從中選擇一個值。如何檢查uitextfields文本時,文本填充某種方式沒有鍵盤?

我的問題是當我點擊主視圖中的一行時,我需要檢查是否有任何文本字段的文本已更改。如果是的話,我正在向用戶顯示一個警報視圖,說「你想要保存一些變化嗎?」。

回答

0

用戶UITextFieldDelegate,或

試試這個:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(methodNothing) 
name:UITextFieldTextDidChangeNotification object:myTextField]; 

你也可以使用:UITextFieldTextDidBeginEditingNotificationUITextFieldTextDidEndEditingNotification

+0

感謝您的答覆。我嘗試了這種方法,但它對我無效。 – Amit89

+0

它可以工作,如果你正在用鍵盤改變文本。 – Amit89

0

您可以設置一個委託爲您NSTextField實例,並有代表實現以下方法:

- (void)controlTextDidChange:(NSNotification *)notification 
{ 
    // there was a text change in some control 
} 

您的委託對象可以是應用程序委託,窗口控制器,視圖控制器或應用程序中的其他對象。委託可經由

[myTextField setDelegate:delegateObject]; 

被編程設定,或者在界面生成器,通過在控制的NSTextField可用委託出口。

請注意,如果有多個控件掛鉤到同一個委託,那麼將爲每個控件發送-controlTextDidChange:即爲不同的控件調用相同的方法。如果您想要根據控件中文本發生更改的不同行爲,可以使用 - [NSNotification對象]來標識發送通知的控件。

舉例來說,如果你有相應的網點名稱字段和addressField兩個文本字段,以及您所設定相同的委託兩個字段,然後:

- (void)controlTextDidChange:(NSNotification *)notification { 
    // there was a text change in some control 
    // [notification object] points to the control that has sent 
    // the notification 

    if ([notification object] == nameField) { 
     // nameField has changed 
    } 
    else if ([notification object] == addressField) { 
     // addressField has changed 
    } 
} 

或者,你可以爲每一個代表文本域。在這種情況下,不需要測試[notification object].

+0

它適用於iOS。 NSTextField ...不在iOS中。 – Amit89

相關問題