2013-04-10 64 views
-1

我已經下降了不少路,並想知道如果有人可以發現這一點馬上:IOS nsnotificationcenter程序中止

我想顯示在文本字段中選擇一個按鈕(因此鍵盤被加載)。

從我讀過NSNotificationCenter是做到這一點的一種方法:

因此,在viewWillAppear中我放在下面

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidAppear:) name:UIKeyboardWillShowNotification object:self.view.window]; 

的目的地(選擇)我有:

-(void)keyboardDidAppear{  
    _button2.hidden = FALSE; 
} 

該程序中止到崩潰轉儲(當然好像應該有比這更好的調試路徑)

如果我註釋掉只行keyboardDidAppear

// _button2.hidden = FALSE; 

程序仍然中止

如此明顯的NSNotificationCenter被解僱,不容忍某些原因

任何簡易幫助,將不勝感激。

說真的,崩潰轉儲是你在執行錯誤時得到的所有東西嗎?這是你需要的一切嗎?

+0

所有你需要的是一個符號化的堆棧跟蹤。哦,不,等一下,先拿一本關於Objective-C的好書。 – 2013-04-10 18:26:57

+0

感謝您的幫助! RE:哦,等等 - 我有3本關於Objective-C的書 - 這對我來說是非常新奇的,雖然我已經編程了很長時間,但它還是神祕。再一次謝謝! – user2117002 2013-04-10 18:48:34

回答

3

問題很簡單。您註冊了方法keyboardDidAppear:,但是您提供了一種名爲keyboardDidAppear的方法。這些不一樣(注意冒號)。

改變一個或另一個(但不是兩個)。

另一種解決方案是實施UITextFieldDelegate方法textFieldDidBeginEditing:,並在調用該按鈕時顯示按鈕。

3

您正在嘗試發送信息至keyboardDidAppear:,但您已實施keyboardDidAppear。第一種方法是採用參數的方法,但是您提供了一個不帶參數的方法,這當然是不同的。

更改或者您的方法定義

-(void)keyboardDidAppear:(NSNotification *)n {  
    _button2.hidden = NO; //Please stick to Obj-C semantics and use NO, as opposed to FALSE. 
} 

或調用

@selector(keyboardDidAppear) 
+0

你是找到這些錯誤的主人:) – 2013-04-10 18:28:37

+0

ahah謝謝Anoop,我看到那些人的方式通常是那個錯誤的怪物,更明顯的修復。 – 2013-04-10 18:30:04

+0

@ user2117002爲什麼你不認爲這個答案接受了任何特殊原因? – 2013-04-24 15:46:51

相關問題