2014-05-05 50 views
0

我是一個新手,所以希望這對你們中的一些人來說很容易!註冊通知從一個文本視圖,但不是另一個,在同一個超級視圖

我有一些代碼,它可以很好地將textView從鍵盤上移開,除了一件事。我只需要它在選擇底部文本視圖時按下文本視圖,而不是在頂部文本視圖被選中時。事實上,當頂部文本視圖被選中時,鍵盤將其推出視野外。 (我希望這很明顯,因爲我沒有足夠的聲望發佈圖片)。

在通知中心,我想我可以改變觀察者註冊的哪個對象來接收消息。所以,你可以在下面的代碼中看到,我嘗試使用textView,solutionText(我想觸發該方法的底部文本視圖)的出口。返回null(因此所有對象仍然調用keyboardWillShow:方法)。然後我添加了委託,因爲我只是在嘗試一些東西,而且它仍然是空的。

有誰知道如何在這裏註冊一個對象,以便只有一個文本視圖將調用此方法?

DetailView *dv = [DetailView new]; 
[[NSNotificationCenter defaultCenter] 
     addObserver:self    
     selector:@selector(keyboardWillShow:) 
     name:UIKeyboardWillShowNotification 
     object:dv.solutionText.delegate]; 

謝謝!

+0

這聽起來像你沒有連接你在IB的插座。將solutionText傳遞給對象參數應該可以工作。 – rdelmar

+0

不幸的是它是連接:) –

+0

我希望這個鏈接將幫助您

回答

0

我會建議跟蹤文本視圖中的活動文本視圖委託的textViewShouldBeginEditing:。檢查鍵盤通知if(activeTextView == bottomTextView)中的活動文本視圖,並僅在這種情況下向上滑動視圖。

+0

這是處理這個問題的好方法。將兩個指針的地址保存在兩個類的屬性中,然後可以比較指針以確定在委託方法中提及哪個文本視圖。 –

+0

這可能是一個很好的答案,但我還沒有足夠的技巧來實現它,所以我仍在努力。從本質上講,我不明白如何從一個類的實例方法與另一個類共享一個值。任何提示將不勝感激,但不是預期 –

+0

不太確定你的意思。 – Stonz2

相關問題