Native iOS Control Delphi XE4
Used in the Delphi Firemonkey Platform is very large, and is well organized. Of course Button, alone Firemonkey, and written.However, under certain circumstances in the OS the Native Control, because you will inevitably need to use a different API, about how to use the Native Control to learn.
//// XE4 & iOS Button Example//// http://blog.naver.com/simonsayz//// Ref.// SampleNiblessApp : http://rvelthuis.de/zips/sampleniblessapp.7z// CCR.NSAlertHelper : http://code.google.com/p/delphi-foundations/// Delegate Example : http://blogs.embarcadero.com/teamj/2013/05/09/3817/// XE2, Free Pascal : http://blog.naver.com/simonsayz/120162838290// Source to Html : http://www.duketown.com/marcel/hyperdelphi.shtml//unit Unit1; interfaceuses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls, FMX.Platform.iOS, FMX.Layouts, FMX.Memo, // System.TypInfo, Macapi.ObjectiveC, Macapi.ObjCRuntime, iOSapi.CocoaTypes, iOSapi.foundation, iOSapi.uikit, iOSapi.CoreGraphics; type// IBtnDelegate = interface(NSObject) procedure BtnPressed; cdecl; end; // TBtnDelegate = class(TOCLocal) Private Finx : Integer; FMemo : TMemo; PublicconstructorCreate( inx : integer; memo : TMemo ); functionGetObjectiveCClass : PTypeInfo; override; procedureBtnPressed; cdecl; end; // TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; procedureButton1Click(Sender: TObject); privatepublic BtnDelegate : TBtnDelegate; end; var Form1: TForm1; implementation{$R *.fmx}ConstructorTBtnDelegate.Create ( inx : integer; memo : TMemo ); begininherited Create; Self.Finx := 10; Self.Fmemo := Memo; end; functionTBtnDelegate.GetObjectiveCClass : PTypeInfo; begin Result := TypeInfo(IBtnDelegate); end; //procedureTBtnDelegate.BtnPressed; begin inc(Finx); FMemo.Lines.add('iOS Btn Pressed '+IntToStr(Finx)); end; //procedureTForm1.Button1Click(Sender: TObject); Var Btn : UIButton; begin// Memo1.Lines.Add('FMX Btn Pressed'); // Btn := TUIButton.Wrap( TUIButton.OCClass.buttonWithType(UIButtonTypeRoundedRect) ); // Btn.setFrame ( CGRectMake(40,130,240,100) ); Btn.setTitle (NSStr('iOS UIButton Pressed'),UIControlStateNormal); // BtnDelegate := TBtnDelegate.Create(10,Memo1); // Btn.addTarget( BtnDelegate.GetObjectID, // target sel_getUid('BtnPressed'), // action UIControlEventTouchDown); // event// WindowHandleToPlatform(Self.Handle).View.addSubview(Btn); //亮点啊!!!cnsoft mark end; end.