1
我正在製作我的第一個Mac OS X應用程序,並且遇到了問題。表格單元格視圖中的IBAction不會被觸發
我在我的窗口創建了一個NSTableView鏈接到一個NSArrayController,我想在停止編輯文本域單元格後調用方法。所以,我選擇了打電話的動作時結束的編輯,你可以在下面的截圖中看到:
後,我創建了一個IBAction爲它:
它生成的驗證碼在我AppDelegate.h:
- (IBAction)stopEditingHeaderNameCell:(id)sender;
然後我編輯的IBAction爲在AppDelegate.m爲了表現出的NSLog消息的小區進行編輯時:
- (IBAction)stopEditingHeaderNameCell:(id)sender
{
NSLog(@"test");
}
然而,當我停止按輸入或點擊另一個元素編輯單元格,沒有任何反應。我已經嘗試將此IBAction應用於NSTextField,並且它的工作原理完美,但它在應用於此文本字段單元格時不會調用IBAction。
任何人都可以幫助我解決這個問題嗎?
謝謝!
謝謝你,它像一個魅力。現在我試圖獲取發送給此函數的NSNotification參數(obj)的一些屬性。我嘗試獲取[obj值]之類的信息,但出現如下錯誤:「 - [NSConcreteNotification key]:發送到實例0x7fcf90d66150的無法識別的選擇器」和 「處理鍵輸入時檢測到異常」。我怎樣才能捕獲像它的價值,行號和東西的信息,所以我可以根據其內容操作其行中的其他單元格? –
[obj對象]會給你一個表視圖的引用,所以你可以使用[[obj object] selectedRow]來找出哪一行被選中。這一行:[[obj.userInfo valueForKey:@「NSFieldEditor」] string]將爲您提供新的字符串值。 – rdelmar
儘管[[obj.userInfo valueForKey:@「NSFieldEditor」] string]正在成功返回新內容,但[[obj object] selectedRow]在用NSLog(@「%@」)打印時返回「(null) ,[tableView selectedRow]);'。 P.S .:我通過使用'NSTableView * tableView =(NSTableView *)[obj object]'將一個[obj對象]存儲在名爲tableView的變量中;' –