簡體   English   中英

如何讓IB創建動作連接?

[英]How can I make IB create an action connection?

Xcode5的Interface Builder困擾着我一個非常令人沮喪的問題。 這是問題所在:

我有一個.xib文件,其中包含許多控件:

在此處輸入圖片說明

當我從這些控件中的任何一個控件拖動到與此.xib文件相對應的.h或.m文件時,我沒有創建操作的選項:

在此處輸入圖片說明

.xib文件的“ FilesOwner”已正確設置為“ MessageController”,這是.xib文件的ViewController。

這令人沮喪,因為此問題不僅發生在特定的.xib / VC對,而且發生在我項目中的所有文件中。 我已經清理並重建了項目,並關閉並重新打開了XCode,但是似乎沒有任何效果。

編輯:

閱讀您的評論后,我意識到我應該更加具體地嘗試做些什么。 在上面的屏幕截圖中,我選擇了UIScrollView,因為我覺得所有控件都能夠生成某些動作。 因此,這是我實際嘗試執行的操作的屏幕截圖:

在此處輸入圖片說明

我在這里犯同樣的初學者錯誤嗎? 我應該使用類似這樣的代碼而不是使用IB來分配此操作嗎:

[textView addTarget:self操作:@selector(textFieldDidChange :) forControlEvents:UIControlEventEditingChanged];

還有其他建議嗎?

謝謝!

就像注釋中指出的那樣,您無法對UIScrollView進行任何操作。 如果您還遇到與UIButtonsUITextFields等可操作的UI對象有關的問題,請執行以下操作:

檢查以確保您為該xib文件(文件所有者)定義了正確的自定義類。

此搜索

還要確保將助手編輯器的選擇設置為“自動”。

鏡像2

-addTarget:action:forControlEvents:可以在UITextField因為它繼承自UIControl不是繼承自UITextView因為UITextView 繼承自UIControl ,因此缺乏這種目標動作功能。

您必須使用UITextViewDelegate並實現-textViewDidChange:方法來執行相同的操作。

//1
//set delegate programmatically
[textView setDelegate:self];
//or via the IB: right-click drag UITextView to `File's owner`

//2
-(void)textViewDidChange:(UITextView *)textView
{
    //something happened with the textView!!
}

PS:您可能希望將UITextView對象重命名為簡單的textView

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM