2010-12-10 2 views
0

В представлении таблицы я хочу добавить к нему ячейку выбора даты, но для этого не было никакой возможности, поэтому я попытался создать пользовательскую ячейку, но я не знал, как это сделать. Кто-нибудь знает, как создать пользовательскую ячейку или есть хороший учебник для начинающих об этом. Благодарю.Как создать пользовательскую ячейку?

+1

для прошивки или MacOS? – vikingosegundo 2010-12-10 04:18:51

ответ

2

Итак, после обнаружения того, что вложение NSDatePickerCell в NSTableColumn в нибе не разрешено, я продолжал выяснять, возможно ли это сделать программно. Пример проекта по адресу:

http://www.markdouma.com/developer/TableViewDatePicker.zip

Как тест приложение показывает, что можно сделать это программно:

alt text

Вы бы использовать код вроде следующего:

NSDatePickerCell *cell = [[[NSDatePickerCell alloc] init] autorelease]; 
[dateOfHireColumn setDataCell:cell]; 

Однако, как вы можете видеть, первоначальный результат не совсем то, что хотелось бы. Ячейка выбора даты не отменяет цвет текста, который он рисует, когда он выбран, а также он не позволяет вам изменить дату с помощью своих элементов управления.

Хотя я не искал попыток сделать это широко (другими словами, возможно, с небольшим изменением и/или подклассированием, вы могли бы заставить его работать лучше), нижний вид таблицы показывает пример того, как это могут быть реализованы. В основном, вы просто используете регулярное текстовое поле в столбце таблицы вместе с NSDateFormatter, чтобы показать дату правильно. Когда вы выбираете дату, вы можете использовать NSDatePicker под таблицей, чтобы изменить значение.

+0

Это действительно сработало, но в правом нижнем углу отображается ошибка (ошибка «красный x»). Он сказал, что встраивание NSDatePickerCell в экземпляр NSTableColumn запрещено с ID 565. Будет ли он работать, или это просто, что он не подходит для руководства по человеческому интерфейсу Apple? – TheAmateurProgrammer 2010-12-10 06:01:03

2

// Настроить внешний вид ячеек таблицы.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

static NSString *CellIdentifier = @"Cell"; 
UIImage *image = nil; 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

if (cell == nil) { 

    cell = [[[UITableViewCell alloc] initWithFrame:CGRectMake(0,0,300,40) reuseIdentifier:CellIdentifier] autorelease]; 
} 

Теперь после этого ввести код и конец скобки для метода cellForRowAtIndexPath.

Попробуйте это. Shruti

0

Я бы сказал, используйте обычный UITableViewCell и покажите UIAlertView со встроенным UIPickerView.

После установки даты в UIAlertView вы можете поместить переменную в свой tableCell. UIPickerView очень большой, чтобы отображать внутри ячейки. Но и это можно сделать ..!

Я хотел бы использовать this method.

Надеются, что это поможет вам ..

Смежные вопросы