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

ComboboxDataSource не String - Swift

Войти
Регистрация
Восстановить пароль
 
alazir
0 / 0 / 0
Регистрация: 01.12.2015
Сообщений: 10
22.12.2015, 20:31     ComboboxDataSource не String #1
Создаю класс, реализующий NSComboboxDataSource.

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

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

Pascal padright(c:string; ch: char; n:byte):string - функция выравнивает строку С по размеру N
C# Несколько вопросов по примеру из книги по C# про строки (string и String.Format)
C++/CLI Конфузы с русскими буквами при переводе из System::String^ в std::string
C++/CLI Как string присвоить String? И как из string перевести в char[]?
Пробелы в запросе: String host = applet.getCodeBase().getHost(); String urlString =....... Java
List<string, string, string> есть ли в C# что-то подобное C#
Android AsyncTask<String, String, String> объясните пожалуйста
C++ Какое одинаковое значение можно вернуть из функций <string> f () и vector < <string> > f()?
Swift Как конвертировать строку String в массив UInt8?
Java SE Разделение строки на 2 подстроки с последующей записью последних в HashMap<String, String>
Преобразование между типами System::String, char*, wchar_t*, std::string и др. C++/CLI
Implicitly convert type 'string' to 'System.Collections.Generic.IEnumerable<string> C# MVC

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
glvrzzz
95 / 71 / 12
Регистрация: 12.12.2012
Сообщений: 214
23.12.2015, 09:08     ComboboxDataSource не String #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.
alazir
0 / 0 / 0
Регистрация: 01.12.2015
Сообщений: 10
23.12.2015, 10:11  [ТС]     ComboboxDataSource не String #3
Спасибо огромное!
alazir
0 / 0 / 0
Регистрация: 01.12.2015
Сообщений: 10
24.12.2015, 11:17  [ТС]     ComboboxDataSource не String #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?
AncientPenguin
98 / 45 / 18
Регистрация: 09.08.2015
Сообщений: 367
25.12.2015, 08:56     ComboboxDataSource не String #5
alazir, Create NSFormatter
alazir
0 / 0 / 0
Регистрация: 01.12.2015
Сообщений: 10
25.12.2015, 09:16  [ТС]     ComboboxDataSource не String #6
AncientPenguin, да создал уже. Создал. Выдает вышеуказанную ошибку.

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

Хотя, как выяснилось, все равно главную проблему - получить выбранный в комбобоксе объект через Combobox.objectValueOfSelectedItem все равно нельзя
[NSComboBoxCell objectValueOfSelectedItem] should not be called when usesDataSource is set to YES
Yandex
Объявления
25.12.2015, 09:16     ComboboxDataSource не String
Ответ Создать тему
Опции темы

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