从 API、Coredata 以及 Json 响应获取自动完成文本字段的仓库,一个提供文本字段建议下拉列表的框架。它在 iOS 8 及更高版本中可用,支持 Objective-C 或 Swift。
克隆此仓库,将此代码添加到您的类中。此仓库需要以下内容才能运行此项目
注意:我建议您从 Pod 使用此库
MPAutoCompleteTextField 可以通过 CocoaPods 安装,要安装它,只需将以下行添加到您的 Podfile
pod 'MPAutoCompleteText'
要运行示例项目,请克隆仓库,然后首先从 Example 目录运行 pod install
然后将 MPAutoCompleteTextField 导入到源文件中(或如果您在没有使用 CocoaPods 的框架中使用 Swift,则将其导入到构建头文件中)
#import "Private.h"
@import AutoCompletion;
如果您使用 Swift 和框架,则可以直接将浏览器导入到 Swift 源文件中
import AutoCompletion;
#import "Private.h"
@import AutoCompletion;
@interface ViewController () <AutoCompletionTextFieldDelegate>
@property (weak, nonatomic) IBOutlet AutoCompletionTextField *coreDataTextField;
@property (weak, nonatomic) IBOutlet AutoCompletionTextField *jsonTextField;
@property (weak, nonatomic) IBOutlet AutoCompletionTextField *apiTextField;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// TODO : <AutoCompletionTextFieldDelegate> Add this delegate to your class
AutoCompletionUIKitDynamicsAnimation *animation = [[AutoCompletionUIKitDynamicsAnimation alloc] init];
CoreDataDataSource *coreDataDataSource = [[CoreDataDataSource alloc] init];
_coreDataTextField.suggestionsResultDataSource = coreDataDataSource;
_coreDataTextField.animationDelegate = animation;
_coreDataTextField.suggestionsResultDelegate = self;
JSONDataSource *jsonDataSource = [[JSONDataSource alloc] init];
_jsonTextField.suggestionsResultDataSource = jsonDataSource;
_jsonTextField.suggestionsResultDelegate = self;
APIDataSource *apiDataSource = [[APIDataSource alloc] init];
apiDataSource.requestURL = @"YOUR CUSTOM URL/"; // Add your Custom url for get
apiDataSource.api_type = APICallTypeGET; // For post use APICallTypePOST
apiDataSource.requestParams = [[NSMutableDictionary alloc] init]; // Add your request parameters
apiDataSource.manager = manager; // Add your necessory credentials for SessionManager for this use AFHTTPSessionManager
_apiTextField.suggestionsResultDataSource = apiDataSource;
_apiTextField.suggestionsResultDelegate = self;
}
#pragma mark - Delegate
- (void)textField:(AutoCompletionTextField*)textField didSelectItem:(id)selectedItem {
if ([textField isEqual:_coreDataTextField]) {
Items *item = selectedItem;
[textField setText:item.title];
}
else if ([textField isEqual:_jsonTextField] || [textField isEqual:_apiTextField]) {
JSONItem *item = selectedItem;
[textField setText:item.title];
}
}
- (void)placeholderTextField:(UITextField *)placeholderTextField didSelectItem:(id)selectedItem {
Items *item = selectedItem;
[placeholderTextField setText:item.title];
}
Mayank Patel,[email protected]
MPAutoCompleteText 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。