Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Swift

Войти
Регистрация
Восстановить пароль
 
alazir
0 / 0 / 0
Регистрация: 01.12.2015
Сообщений: 10
#1

ComboboxDataSource не String - Swift

22.12.2015, 20:31. Просмотров 405. Ответов 5
Метки нет (Все метки)

Создаю класс, реализующий NSComboboxDataSource.

В реализации
- comboBox:objectValueForItemAtIndex:
я хочу вернуть объект бизнес-модели, а не класса String. Но в таком случае в список комбобокса вообще ничего не выводится. Может быть, класс должен реализовывать какой-то протокол, чтобы комбобокс выводил его на экран?

Заранее спасибо!
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2015, 20:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ComboboxDataSource не String (Swift):

Создайте класс Animal. Добавьте поля string Name, string Kind, string Areal, int Population - C#
Здравствуйте! По C# есть задачка, с которой я так и не разобрался :( Задача: Создайте класс Animal. Добавьте поля string...

Создайте класс Animal. Добавьте поля string Name, string Kind, string Areal, int Population - C#
Создайте класс Animal. Добавьте поля string Name, string Kind, string Areal, int Population. Создание объектов может происходить как без...

Ошибка PHPOfice: Cannot use PhpOffice\PhpWord\Shared\String as String because 'String' is a special class name - PHP
Fatal error: Cannot use PhpOffice\PhpWord\Shared\String as String because 'String' is a special class name in...

Доступ к паре в map<string, vector<pair<string, string>>>Temp - C++
Подскажите пожалуйста как получить данные в векторе пар ? void showData(const map&lt;string, vector&lt;pair&lt;string, string&gt;&gt;&gt;Temp) { ...

List<string, string, string> есть ли в C# что-то подобное - C#
Мне надо добавить в List не только имя файла, но и некоторые строки из этого файла. Т.е. например, у меня есть в определенном директории...

AsyncTask<String, String, String> объясните пожалуйста - Программирование Android
При описаний класса наследника AsyncTask мы в угловых скобках указываем три типа данных: 1. Тип входных данных. Это данные которые пойдут...

5
glvrzzz
95 / 71 / 12
Регистрация: 12.12.2012
Сообщений: 214
23.12.2015, 09:08 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
https://developer.apple.com/library/...boBoxData.html
The combo box treats objects provided by its data source as values to be displayed in the combo box’s pop-up list. If these objects aren’t of common value classes—such as strings, numbers, and so on—you’ll need to create a custom NSFormatter to display them. See Data Formatting Guide for more information.
0
alazir
0 / 0 / 0
Регистрация: 01.12.2015
Сообщений: 10
23.12.2015, 10:11  [ТС] #3
Спасибо огромное!
0
alazir
0 / 0 / 0
Регистрация: 01.12.2015
Сообщений: 10
24.12.2015, 11:17  [ТС] #4
К сожалению, оказалось, что все не так просто
Попытка вернуть из func comboBox(_ aComboBox: NSComboBox, objectValueForItemAtIndex index: Int) -> AnyObject
объект, отличный от String дает вот такую ошибку:
2015-12-24 10:09:08.787 Tasks[28485:4034531] (
0 CoreFoundation 0x00007fff92d55ae2 __exceptionPreprocess + 178
1 libobjc.A.dylib 0x00007fff979d973c objc_exception_throw + 48
2 CoreFoundation 0x00007fff92d58b9d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
3 CoreFoundation 0x00007fff92c91601 ___forwarding___ + 1009
4 CoreFoundation 0x00007fff92c91188 _CF_forwarding_prep_0 + 120
5 AppKit 0x00007fff86e88d8e -[NSCell _setContents:] + 74
6 AppKit 0x00007fff86e88c62 -[NSCell setObjectValue:] + 486
7 AppKit 0x00007fff86e88861 -[NSTextFieldCell setObjectValue:] + 88
8 AppKit 0x00007fff87095c12 -[NSTableView preparedCellAtColumn:row:] + 633
9 AppKit 0x00007fff8709584c -[NSTableView _drawContentsAtRow:column:withCellFrame:] + 50
10 AppKit 0x00007fff87095409 -[NSTableView drawRow:clipRect:] + 1678
11 AppKit 0x00007fff87094aeb -[NSTableView drawRowIndexes:clipRect:] + 919
12 AppKit 0x00007fff87093403 -[NSTableView drawRect:] + 1480
13 AppKit 0x00007fff86f2c1fe -[NSView(NSInternal) _recursive:displayRectIgnoringOpacity:inGraphicsContext:CGContext:topView:shouldChangeFontReferenceColor:] + 1331
14 AppKit 0x00007fff86f2bb98 __46-[NSView(NSLayerKitGlue) drawLayer:inContext:]_block_invoke + 242
15 AppKit 0x00007fff86f2b843 -[NSView(NSLayerKitGlue) _drawViewBackingLayer:inContext:drawingHandler:] + 2403
16 AppKit 0x00007fff86f2aed5 -[NSView(NSLayerKitGlue) drawLayer:inContext:] + 108
17 QuartzCore 0x00007fff8e607e79 CABackingStoreUpdate_ + 3494
18 QuartzCore 0x00007fff8e6070cd ___ZN2CA5Layer8display_Ev_block_invoke + 59
19 QuartzCore 0x00007fff8e5fad31 _ZN2CA5Layer8display_Ev + 1565
20 AppKit 0x00007fff86e9e07c _NSBackingLayerDisplay + 641
21 AppKit 0x00007fff86e9b7bd -[_NSViewBackingLayer display] + 818
22 QuartzCore 0x00007fff8e5f910d _ZN2CA5Layer17display_if_neededEPNS_11TransactionE + 603
23 QuartzCore 0x00007fff8e5f878d _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 35
24 QuartzCore 0x00007fff8e5f7cf1 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 277
25 QuartzCore 0x00007fff8e5f7a24 _ZN2CA11Transaction6commitEv + 508
26 QuartzCore 0x00007fff8e606917 _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 71
27 CoreFoundation 0x00007fff92c64e37 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
28 CoreFoundation 0x00007fff92c64da7 __CFRunLoopDoObservers + 391
29 CoreFoundation 0x00007fff92c56358 CFRunLoopRunSpecific + 328
30 HIToolbox 0x00007fff8e31e935 RunCurrentEventLoopInMode + 235
31 HIToolbox 0x00007fff8e31e677 ReceiveNextEventCommon + 184
32 HIToolbox 0x00007fff8e31e5af _BlockUntilNextEventMatchingListInModeWithFilter + 71
33 AppKit 0x00007fff86ec80ee _DPSNextEvent + 1067
34 AppKit 0x00007fff87294943 -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 454
35 AppKit 0x00007fff8733d7c5 -[NSComboBoxCell filterEvents:] + 504
36 AppKit 0x00007fff8733f0cc -[NSComboBoxCell popUp:] + 572
37 libsystem_trace.dylib 0x00007fff8f56907a _os_activity_initiate + 75
38 AppKit 0x00007fff8707551d -[NSApplication sendAction:to:from:] + 460
39 AppKit 0x00007fff8708a486 -[NSControl sendAction:to:] + 86
40 AppKit 0x00007fff8708a3b0 __26-[NSCell _sendActionFrom:]_block_invoke + 131
41 libsystem_trace.dylib 0x00007fff8f56907a _os_activity_initiate + 75
42 AppKit 0x00007fff8708a30d -[NSCell _sendActionFrom:] + 144
43 AppKit 0x00007fff8718a2a6 __48-[NSCell trackMouse:inRect:ofView:untilMouseUp:]_block_invoke + 219
44 libsystem_trace.dylib 0x00007fff8f56907a _os_activity_initiate + 75
45 AppKit 0x00007fff870883b0 -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 1283
46 AppKit 0x00007fff870ddd58 -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 744
47 AppKit 0x00007fff8733d255 -[NSComboBoxCell trackMouse:inRect:ofView:untilMouseUp:] + 618
48 AppKit 0x00007fff8733ad6e -[NSComboBox mouseDown:] + 366
49 AppKit 0x00007fff87634d1d -[NSWindow _handleMouseDownEvent:isDelayedEvent:] + 6322
50 AppKit 0x00007fff87635fad -[NSWindow _reallySendEvent:isDelayedEvent:] + 212
51 AppKit 0x00007fff86f8e735 -[NSWindow sendEvent:] + 517
52 AppKit 0x00007fff86f8ae49 -[NSApplication sendEvent:] + 2540
53 AppKit 0x00007fff86ebe03a -[NSApplication run] + 796
54 AppKit 0x00007fff86e40520 NSApplicationMain + 1176
55 Tasks 0x00000001000105b7 main + 87
56 libdyld.dylib 0x00007fff9b1495ad start + 1
)


Может, все-таки есть ограничения по классам, которые можно вернуть как объект в ComboboxDataSource?
0
AncientPenguin
98 / 45 / 18
Регистрация: 09.08.2015
Сообщений: 367
25.12.2015, 08:56 #5
alazir, Create NSFormatter
0
alazir
0 / 0 / 0
Регистрация: 01.12.2015
Сообщений: 10
25.12.2015, 09:16  [ТС] #6
AncientPenguin, да создал уже. Создал. Выдает вышеуказанную ошибку.

В качестве решения потребовалась реализация классом, который я подставляю в Combobox, метода copyWithZone.

Хотя, как выяснилось, все равно главную проблему - получить выбранный в комбобоксе объект через Combobox.objectValueOfSelectedItem все равно нельзя
[NSComboBoxCell objectValueOfSelectedItem] should not be called when usesDataSource is set to YES
0
25.12.2015, 09:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2015, 09:16
Привет! Вот еще темы с ответами:

.NET 3.x Как использовать String.Substring(string, string)? - C#
Есть у String метод Substring(int, int), но он принимает только числа. Я видел на видео, что можно парсить по словам. Например: string...

Как string присвоить String? И как из string перевести в char[]? - C++/CLI
Как string присвоить String? И как из string перевести в char?

padright(c:string; ch: char; n:byte):string - функция выравнивает строку С по размеру N - Pascal
функция выравнивает строку С по размеру N. если длина строкиС меньше N, то она дополняется справа символами CH. как это записать?

Написать функция String->String, удаляющие из строки все согласные буквы - Haskell
написать функция String-&gt;String, удаляющие из строки все согласные буквы с помощью функции filter и elem


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru