13: 2018-01-18 (木) 16:29:57 njf[5] [6] [7] | 現: 2018-05-28 (月) 15:20:05 njf[5] [8] [9] | ||
---|---|---|---|
Line 78: | Line 78: | ||
次にボタンを押したときの処理を定義します。 | 次にボタンを押したときの処理を定義します。 | ||
Xcodeのウインドウの右上にある丸いボタンを押して、StoryboardとViewController.mを両方表示します。 | Xcodeのウインドウの右上にある丸いボタンを押して、StoryboardとViewController.mを両方表示します。 | ||
- | ViewController.mが表示されないときは、てしまった場合は、エディタ上の「< >」とか書いてある右側の部分をクリックしてManualにしてViewController.mを選択したり「< >」をクリックしたりすると切り替わります。 | + | ViewController.mが表示されない場合は、エディタ上の「< >」とか書いてある右側の部分をクリックしてManualにしてViewController.mを選択したり「< >」をクリックしたりすると切り替わります。 |
&ref(twoEditorBtn.jpg,mw:480,mh:360); | &ref(twoEditorBtn.jpg,mw:480,mh:360); | ||
Line 159: | Line 159: | ||
if(alertController == nil){ | if(alertController == nil){ | ||
NSLog(@"alertWindowInit"); | NSLog(@"alertWindowInit"); | ||
+ | |||
alertController = [UIAlertController alertControllerWithTitle:@"Title" message:@"Message" preferredStyle:UIAlertControllerStyleAlert]; | alertController = [UIAlertController alertControllerWithTitle:@"Title" message:@"Message" preferredStyle:UIAlertControllerStyleAlert]; | ||
+ | |||
// Yes button | // Yes button | ||
[alertController addAction:[UIAlertAction actionWithTitle:@"Yes" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { | [alertController addAction:[UIAlertAction actionWithTitle:@"Yes" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { | ||
Line 167: | Line 167: | ||
}]]; | }]]; | ||
} | } | ||
+ | |||
} | } | ||
- (void) alertWindowShow:(NSString*)title : (NSString*)message{ | - (void) alertWindowShow:(NSString*)title : (NSString*)message{ | ||
Line 184: | Line 184: | ||
これに対応するanealert.hは以下の通りです。 | これに対応するanealert.hは以下の通りです。 | ||
#import <UIKit/UIKit.h> | #import <UIKit/UIKit.h> | ||
+ | |||
@interface AneAlert : NSObject{ | @interface AneAlert : NSObject{ | ||
@private | @private | ||
Line 192: | Line 192: | ||
- (void) alertWindowInit; | - (void) alertWindowInit; | ||
- (void) alertWindowShow:(NSString*)title : (NSString*)message; | - (void) alertWindowShow:(NSString*)title : (NSString*)message; | ||
+ | |||
@end | @end | ||
Line 211: | Line 211: | ||
[aneAlert alertWindowShow:@"Ane Test from objective-C" : message]; | [aneAlert alertWindowShow:@"Ane Test from objective-C" : message]; | ||
cnt++; | cnt++; | ||
+ | |||
} | } | ||
Line 221: | Line 221: | ||
int cnt; | int cnt; | ||
} | } | ||
+ | |||
@end | @end | ||
Line 265: | Line 265: | ||
#import "FlashRuntimeExtensions.h" | #import "FlashRuntimeExtensions.h" | ||
#import "anealert.h" | #import "anealert.h" | ||
+ | |||
AneAlert * aneAlert; | AneAlert * aneAlert; | ||
+ | |||
FREObject ANEAlertShow(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[]){ | FREObject ANEAlertShow(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[]){ | ||
NSLog(@"ANEAlertShow start"); | NSLog(@"ANEAlertShow start"); | ||
uint32_t argLength; //引数の長さ | uint32_t argLength; //引数の長さ | ||
const uint8_t *argBuff; //引数の値保持用 | const uint8_t *argBuff; //引数の値保持用 | ||
+ | |||
FREGetObjectAsUTF8(argv[0], &argLength, &argBuff);//引数取得 | FREGetObjectAsUTF8(argv[0], &argLength, &argBuff);//引数取得 | ||
NSString *arg1NSString = [NSString stringWithUTF8String:(char*)argBuff];//引数をNSStringへ変換 | NSString *arg1NSString = [NSString stringWithUTF8String:(char*)argBuff];//引数をNSStringへ変換 | ||
+ | |||
FREGetObjectAsUTF8(argv[1], &argLength, &argBuff);//引数取得 | FREGetObjectAsUTF8(argv[1], &argLength, &argBuff);//引数取得 | ||
NSString *arg2NSString = [NSString stringWithUTF8String:(char*)argBuff];//引数をNSStringへ変換 | NSString *arg2NSString = [NSString stringWithUTF8String:(char*)argBuff];//引数をNSStringへ変換 | ||
+ | |||
if(aneAlert == nil){ | if(aneAlert == nil){ | ||
NSLog(@"ANEAlertShow:init alert!"); | NSLog(@"ANEAlertShow:init alert!"); | ||
Line 288: | Line 288: | ||
return NULL; | return NULL; | ||
} | } | ||
+ | |||
void ANEAlertContextInitializer(void* extData, const uint8_t* ctxType, FREContext ctx, uint32_t* numFunctionsToTest, const FRENamedFunction** functionsToSet) | void ANEAlertContextInitializer(void* extData, const uint8_t* ctxType, FREContext ctx, uint32_t* numFunctionsToTest, const FRENamedFunction** functionsToSet) | ||
{ | { | ||
NSLog(@"ANEAlertContextInitializer start"); | NSLog(@"ANEAlertContextInitializer start"); | ||
+ | |||
*numFunctionsToTest = 1; | *numFunctionsToTest = 1; | ||
+ | |||
FRENamedFunction* func = (FRENamedFunction*) malloc(sizeof(FRENamedFunction) * *numFunctionsToTest); | FRENamedFunction* func = (FRENamedFunction*) malloc(sizeof(FRENamedFunction) * *numFunctionsToTest); | ||
+ | |||
func[0].name = (const uint8_t*) "alert"; | func[0].name = (const uint8_t*) "alert"; | ||
func[0].functionData = NULL; | func[0].functionData = NULL; | ||
func[0].function = &ANEAlertShow; | func[0].function = &ANEAlertShow; | ||
+ | |||
*functionsToSet = func; | *functionsToSet = func; | ||
+ | |||
NSLog(@"ANEAlertContextInitializer end"); | NSLog(@"ANEAlertContextInitializer end"); | ||
} | } | ||
+ | |||
void ANEAlertInitializer(void** extDataToSet, FREContextInitializer* ctxInitializerToSet, FREContextFinalizer* ctxFinalizerToSet){ | void ANEAlertInitializer(void** extDataToSet, FREContextInitializer* ctxInitializerToSet, FREContextFinalizer* ctxFinalizerToSet){ | ||
NSLog(@"ANEAlertInitializer start"); | NSLog(@"ANEAlertInitializer start"); |
(This host) = https://njf.jp