2014-10-07 71 views
0

我正在努力使用基於視圖的NSTableview來顯示由Core Data管理的各種對象的OS X應用程序。其中大部分是在界面構建器中進行管理的,所以下面是對那裏設置的內容的描述:我有一個列按日期列出每個條目。該列的視圖僅包含一個NSTextField,並且我將NSDateFormatter拖放到該文本字段的單元格中。 NSTableview的內容綁定到一個NSArrayController,它擁有我要列出的實體,每個實體都有一個「date」屬性。 NSTextField的值綁定到「Table Cell View」和objectvalue.date。在基於視圖的NSTableview中爲可編輯文本框使用NSDateFormatter

因此,所有這些工作都非常好,可以顯示日期列表,並且在界面構建器中設置的NSDateFormatter可以讓我設置日期顯示方式(中等風格等)。但是,我需要這些日期字段是可編輯的,並且每當我嘗試編輯包含日期的文本字段之一時,我都會收到一條警報,提示新值無效。

如何在IB或代碼中設置它,以便用戶可以正確編輯這些日期?我真的很喜歡這裏的入門很寬鬆,如果可能的話,接受自然語言字符串。

我需要繼承NSTextfield以進行不同的驗證嗎?或者這是NSDateFormatter的問題?

(順便說一句,我編碼迅速,如果你有這個問題的代碼提示。)

回答

0

我從來沒有真正想通了如何處理這個像我想的,可是因爲這個問題已經被我已經決定發佈我是如何處理這種情況的,儘管這更多的是解決問題。

我決定放棄編輯和驗證日期的文本框。現在他們只顯示每個條目的日期。爲了編輯功能,我更改了tableview的「doubleAction:」的目標,以顯示一個包含圖形NSDatePicker的彈出窗口,其值綁定到在tableview中選擇的對象的日期。然後,當用戶選擇不同的日期時,它會更改該值並取消彈出窗口。

我認爲用戶交互與我最初發布此問題時想象的一樣好,或者甚至更好。

相關問題