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.