2017-02-28 26 views
1

我有正被設置爲nil的類的屬性,我不知道發生了什麼這樣做。我已經在它上面設置了一個符號斷點(觀察點),但它並沒有捕捉到它,並且我也在設置器中設置了典型的斷點,但這並沒有抓住它。物業神祕設爲零揹着我

什麼activeTextField財產的目的是什麼? 當用戶開始在一個字段中輸入數據時,如果該字段將被顯示的鍵盤阻擋,我將屏幕向上滑動以顯示該字段。

所以東西的textFieldDidBeginEditing點之間發生的設定值,並正在顯示的鍵盤,這是字面上每次一個又一個的權利,並在keyboardWasShown,我activeTextField =零。

我怎樣才能找到故障原因被設置爲nil?

@property (nonatomic, retain) UITextField *activeTextField; 

-(void)setActiveTextField:(UITextField *)activeTextField 
    { 
     _activeTextField = activeTextField; 
    } 


-(void)textFieldDidBeginEditing:(UITextField *)textField 
    { 
     self.activeTextField = textField; 
    } 



-(void)textFieldDidEndEditing:(UITextField *)textField 
    { 
     self.activeTextField = nil; 
    } 



-(void)keyboardWasShown:(NSNotification *)aNotification 
    { 
     if (self.activeTextField == nil) 
      { 
       return; 
      } 
+0

你確定textFieldDidEndEditing沒有被調用嗎? –

+0

您是否確認keybaordWasShown和textFieldDidBeginEditing正在同一個線程上執行? –

+0

NSLog在textFieldDidEndEditing看看是否被調用。很確定這是一個。 – GeneCode

回答

0

啞程序員錯誤。我有兩個類從我上面發佈的代碼繼承而來,它們名稱幾乎相同,一個註冊了鍵盤通知,另一個不是,這導致我的結果如此混亂。

+2

我在座位的邊緣......! – matt