NIMContactSelectConfig.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. //
  2. // NIMContactSelectConfig.h
  3. // NIMKit
  4. //
  5. // Created by chris on 15/9/14.
  6. // Copyright (c) 2015年 NetEase. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "NIMKitInfo.h"
  10. /**
  11. * 联系人选择器数据回调
  12. */
  13. typedef void(^NIMContactDataProviderHandler)(NSDictionary *contentDic, NSArray *titles);
  14. @protocol NIMContactSelectConfig <NSObject>
  15. @optional
  16. /**
  17. * 联系人选择器标题
  18. */
  19. - (NSString *)title;
  20. /**
  21. * 最多选择的人数
  22. */
  23. - (NSInteger)maxSelectedNum;
  24. /**
  25. * 超过最多选择人数时的提示
  26. */
  27. - (NSString *)selectedOverFlowTip;
  28. /**
  29. * 默认已经勾选的人或群组
  30. */
  31. - (NSArray *)alreadySelectedMemberId;
  32. /**
  33. * 需要过滤的人或群组id
  34. */
  35. - (NSArray *)filterIds;
  36. /**
  37. * 当数据源类型为群组时,需要设置的群id
  38. *
  39. * @return 群id
  40. */
  41. - (NSString *)teamId;
  42. /**
  43. * 显示具体选择人数
  44. */
  45. - (BOOL)showSelectDetail;
  46. /**
  47. * 是否要加入机器人
  48. */
  49. - (BOOL)enableRobot;
  50. /**
  51. * 提供联系人选择期的昵称,title信息
  52. */
  53. - (void)getContactData:(NIMContactDataProviderHandler)handler;
  54. /**
  55. * 提供联系人id、显示名、头像等信息
  56. */
  57. - (NIMKitInfo *)getInfoById:(NSString *)selectedId;
  58. @end
  59. /**
  60. * 内置配置-选择好友
  61. */
  62. @interface NIMContactFriendSelectConfig : NSObject<NIMContactSelectConfig>
  63. @property (nonatomic,assign) BOOL needMutiSelected;
  64. @property (nonatomic,assign) NSInteger maxSelectMemberCount;
  65. @property (nonatomic,copy) NSArray *alreadySelectedMemberId;
  66. @property (nonatomic,copy) NSArray *filterIds;
  67. @property (nonatomic,assign) BOOL showSelectDetail;
  68. @property (nonatomic,assign) BOOL enableRobot;
  69. @end
  70. /**
  71. * 内置配置-选择机器人
  72. */
  73. @interface NIMContactRobotSelectConfig : NSObject<NIMContactSelectConfig>
  74. @property (nonatomic,assign) BOOL needMutiSelected;
  75. @property (nonatomic,assign) NSInteger maxSelectMemberCount;
  76. @property (nonatomic,copy) NSArray *alreadySelectedMemberId;
  77. @property (nonatomic,copy) NSArray *filterIds;
  78. @property (nonatomic,assign) BOOL showSelectDetail;
  79. @end
  80. /**
  81. * 内置配置-选择群成员
  82. */
  83. @interface NIMContactTeamMemberSelectConfig : NSObject<NIMContactSelectConfig>
  84. @property (nonatomic,copy) NSString *teamId;
  85. @property (nonatomic,assign) BOOL needMutiSelected;
  86. @property (nonatomic,assign) NSInteger maxSelectMemberCount;
  87. @property (nonatomic,copy) NSArray *alreadySelectedMemberId;
  88. @property (nonatomic,copy) NSArray *filterIds;
  89. @property (nonatomic,assign) BOOL showSelectDetail;
  90. @property (nonatomic,assign) BOOL enableRobot;
  91. @end
  92. /**
  93. * 内置配置-选择群
  94. */
  95. @interface NIMContactTeamSelectConfig : NSObject<NIMContactSelectConfig>
  96. @property (nonatomic,assign) BOOL needMutiSelected;
  97. @property (nonatomic,assign) NSInteger maxSelectMemberCount;
  98. @property (nonatomic,copy) NSArray *alreadySelectedMemberId;
  99. @property (nonatomic,copy) NSArray *filterIds;
  100. @property (nonatomic,assign) BOOL showSelectDetail;
  101. @property (nonatomic,assign) BOOL enableRobot;
  102. @end