Last active
August 29, 2015 14:23
-
-
Save redent/4c34f4328337ab1b7556 to your computer and use it in GitHub Desktop.
MLPAutoCompleteTextField Xamarin binding adapted for Unified API and 64 bit platforms
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using ObjCRuntime; | |
[assembly: LinkWith ("libMLPAutoCompleteTextFieldSDK.a", LinkTarget.Simulator | LinkTarget.ArmV7 | LinkTarget.ArmV7s | LinkTarget.Arm64, Frameworks = "CoreGraphics", ForceLoad = true)] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
XBUILD=/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild | |
BTOUCH=/Developer/MonoTouch/usr/bin/btouch-native | |
PROJECT_ROOT=MLPAutoCompleteTextField | |
PROJECT=$(PROJECT_ROOT)/MLPAutoCompleteTextField.xcodeproj | |
TARGET=MLPAutoCompleteTextField | |
all: MLPAutoCompleteTextField.dll | |
libMLPAutoCompleteTextField-i386.a: | |
$(XBUILD) -project $(PROJECT) -target $(TARGET) -sdk iphonesimulator -configuration Release clean build | |
mv -f $(PROJECT_ROOT)/build/Release-iphonesimulator/lib$(TARGET).a $@ | |
libMLPAutoCompleteTextField-%.a: | |
$(XBUILD) -project $(PROJECT) -target $(TARGET) -sdk iphoneos -arch $* -configuration Release clean build | |
mv -f $(PROJECT_ROOT)/build/Release-iphoneos/lib$(TARGET).a $@ | |
libMLPAutoCompleteTextFieldSDK.a: libMLPAutoCompleteTextField-i386.a libMLPAutoCompleteTextField-armv7.a libMLPAutoCompleteTextField-armv7s.a libMLPAutoCompleteTextField-arm64.a | |
lipo -create -output $@ $^ | |
MLPAutoCompleteTextField.dll: MLPAutoCompleteTextField.cs AssemblyInfo.cs libMLPAutoCompleteTextFieldSDK.a | |
$(BTOUCH) --new-style MLPAutoCompleteTextField.cs AssemblyInfo.cs --out=$@ --link-with=libMLPAutoCompleteTextFieldSDK.a,libMLPAutoCompleteTextFieldSDK.a | |
clean: | |
-rm -f *.a *.dll | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Drawing; | |
using Foundation; | |
using UIKit; | |
using ObjCRuntime; | |
using CoreGraphics; | |
namespace MLP | |
{ | |
[Model, BaseType (typeof (NSObject)), Protocol] | |
public interface MLPAutoCompleteTextFieldDataSource { | |
[Export ("autoCompleteTextField:possibleCompletionsForString:"), | |
DelegateName("PossibleCompletionsForStringDelegate"), | |
DefaultValue(null)] | |
MLPAutoCompletionObject [] PossibleCompletionsForString (MLPAutoCompleteTextField textField, string text); | |
} | |
[BaseType (typeof (NSObject))] | |
[Model, Protocol] | |
public interface MLPAutoCompletionObject { | |
[Abstract] | |
[Export ("autocompleteString")] | |
string AutocompleteString { get; } | |
} | |
[Model, BaseType (typeof (NSObject)), Protocol] | |
public interface MLPAutoCompleteTextFieldDelegate { | |
[Export ("autoCompleteTextField:shouldStyleAutoCompleteTableView:forBorderStyle:"), | |
DelegateName("ShouldStyleAutoCompleteTableView"), | |
DefaultValue(true)] | |
bool ShouldStyleAutoCompleteTableView (MLPAutoCompleteTextField textField, UITableView autoCompleteTableView, UITextBorderStyle borderStyle); | |
[Export ("autoCompleteTextField:shouldConfigureCell:withAutoCompleteString:withAttributedString:forAutoCompleteObject:forRowAtIndexPath:"), | |
DelegateName("ShouldConfigureCell"), | |
DefaultValue(true)] | |
bool ShouldConfigureCell (MLPAutoCompleteTextField textField, UITableViewCell cell, string autocompleteString, NSAttributedString boldedString, MLPAutoCompletionObject autocompleteObject, NSIndexPath indexPath); | |
[Export ("autoCompleteTextField:didSelectAutoCompleteString:withAutoCompleteObject:forRowAtIndexPath:"), | |
EventArgs("DidSelectAutoCompleteString")] | |
void DidSelectAutoCompleteString (MLPAutoCompleteTextField textField, string selectedString, MLPAutoCompletionObject selectedObject, NSIndexPath indexPath); | |
[Export ("autoCompleteTextField:willShowAutoCompleteTableView:"), | |
EventArgs("WillShowAutoCompleteTableView")] | |
void WillShowAutoCompleteTableView (MLPAutoCompleteTextField textField, UITableView autoCompleteTableView); | |
} | |
[Model, BaseType (typeof (NSObject)), Protocol] | |
public interface MLPAutoCompleteSortOperationDelegate { | |
[Export ("autoCompleteTermsDidSort:")] | |
void AutoCompleteTermsDidSort (MLPAutoCompletionObject[] completions); | |
} | |
[Model, BaseType (typeof (NSObject)), Protocol] | |
public interface MLPAutoCompleteFetchOperationDelegate { | |
[Export ("autoCompleteTermsDidFetch:")] | |
void AutoCompleteTermsDidFetch (NSDictionary fetchInfo); | |
} | |
[BaseType (typeof (UITextField), | |
Delegates = new string [] { "AutoCompleteDataSource", "AutoCompleteDelegate" }, | |
Events = new Type[] { typeof(MLPAutoCompleteTextFieldDataSource), typeof(MLPAutoCompleteTextFieldDelegate) })] | |
public interface MLPAutoCompleteTextField { | |
[Export ("autoCompleteTableView", ArgumentSemantic.Retain)] | |
UITableView AutoCompleteTableView { get; } | |
[Export ("autoCompleteDataSource", ArgumentSemantic.Retain)] | |
MLPAutoCompleteTextFieldDataSource AutoCompleteDataSource { get; set; } | |
[Export ("autoCompleteDelegate", ArgumentSemantic.Assign)] | |
MLPAutoCompleteTextFieldDelegate AutoCompleteDelegate { get; set; } | |
[Export ("autoCompleteFetchRequestDelay")] | |
double AutoCompleteFetchRequestDelay { get; set; } | |
[Export ("sortAutoCompleteSuggestionsByClosestMatch")] | |
bool SortAutoCompleteSuggestionsByClosestMatch { get; set; } | |
[Export ("applyBoldEffectToAutoCompleteSuggestions")] | |
bool ApplyBoldEffectToAutoCompleteSuggestions { get; set; } | |
[Export ("reverseAutoCompleteSuggestionsBoldEffect")] | |
bool ReverseAutoCompleteSuggestionsBoldEffect { get; set; } | |
[Export ("showTextFieldDropShadowWhenAutoCompleteTableIsOpen")] | |
bool ShowTextFieldDropShadowWhenAutoCompleteTableIsOpen { get; set; } | |
[Export ("showAutoCompleteTableWhenEditingBegins")] | |
bool ShowAutoCompleteTableWhenEditingBegins { get; set; } | |
[Export ("disableAutoCompleteTableUserInteractionWhileFetching")] | |
bool DisableAutoCompleteTableUserInteractionWhileFetching { get; set; } | |
[Export ("autoCompleteTableAppearsAsKeyboardAccessory")] | |
bool AutoCompleteTableAppearsAsKeyboardAccessory { get; set; } | |
[Export ("autoCompleteTableViewHidden")] | |
bool AutoCompleteTableViewHidden { get; set; } | |
[Export ("autoCompleteFontSize")] | |
nfloat AutoCompleteFontSize { get; set; } | |
[Export ("autoCompleteBoldFontName", ArgumentSemantic.Retain)] | |
string AutoCompleteBoldFontName { get; set; } | |
[Export ("autoCompleteRegularFontName", ArgumentSemantic.Retain)] | |
string AutoCompleteRegularFontName { get; set; } | |
[Export ("maximumNumberOfAutoCompleteRows")] | |
nint MaximumNumberOfAutoCompleteRows { get; set; } | |
[Export ("partOfAutoCompleteRowHeightToCut")] | |
nfloat PartOfAutoCompleteRowHeightToCut { get; set; } | |
[Export ("autoCompleteRowHeight")] | |
nfloat AutoCompleteRowHeight { get; set; } | |
[Export ("autoCompleteTableOriginOffset", ArgumentSemantic.Assign)] | |
CGSize AutoCompleteTableOriginOffset { get; set; } | |
[Export ("autoCompleteTableCornerRadius")] | |
nfloat AutoCompleteTableCornerRadius { get; set; } | |
[Export ("autoCompleteContentInsets", ArgumentSemantic.Assign)] | |
UIEdgeInsets AutoCompleteContentInsets { get; set; } | |
[Export ("autoCompleteScrollIndicatorInsets", ArgumentSemantic.Assign)] | |
UIEdgeInsets AutoCompleteScrollIndicatorInsets { get; set; } | |
[Export ("autoCompleteTableBorderColor", ArgumentSemantic.Retain)] | |
UIColor AutoCompleteTableBorderColor { get; set; } | |
[Export ("autoCompleteTableBorderWidth")] | |
nfloat AutoCompleteTableBorderWidth { get; set; } | |
[Export ("autoCompleteTableBackgroundColor", ArgumentSemantic.Retain)] | |
UIColor AutoCompleteTableBackgroundColor { get; set; } | |
[Export ("autoCompleteTableCellBackgroundColor", ArgumentSemantic.Retain)] | |
UIColor AutoCompleteTableCellBackgroundColor { get; set; } | |
[Export ("autoCompleteTableCellTextColor", ArgumentSemantic.Retain)] | |
UIColor AutoCompleteTableCellTextColor { get; set; } | |
[Export ("registerAutoCompleteCellNib:forCellReuseIdentifier:")] | |
void RegisterAutoCompleteCellNib (UINib nib, string reuseIdentifier); | |
[Export ("registerAutoCompleteCellClass:forCellReuseIdentifier:")] | |
void RegisterAutoCompleteCellClass (Class cellClass, string reuseIdentifier); | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment