我有 UIWebView 用于显示 HTML 文章。当用户触摸 UIWebView 中的某个区域时,将显示 UIMenuController。然后用户选择它显示 UITextView 的注释按钮,然后用户可以编写一些文本,之后用户可以将文本存储到该触摸区域,如 Readdle 应用程序的 Documents。我创建了最多写入文本并保存到数据库。保存文本后,我需要在触摸区域显示按钮。如何启用按钮?
UIWEBView 显示文章页面:
长按UIMenuController后会显示,然后选择notes
选择笔记后会出现 UITextView 用于写一些笔记,然后单击完成按钮 UItextView 将删除,然后 UIWebView 将出现。
我需要在 uiwebview 长按位置显示小按钮或图标。在 UIWebView 上方的位置是Commences
. 在即将开始的文本中,我需要在单击完成按钮后显示小图标
- (void)viewDidLoad
{
[wbCont loadHTMLString:webString baseURL:nil];
wbCont.userInteractionEnabled=YES;
[self.view addSubview:wbCont];
menuItem = [[UIMenuItem alloc] initWithTitle:@"Notes" action:@selector(note:)];
[items addObject:menuItem];
}
长按后 UIMenuItem 将打开并单击注释然后打开 UItextView
- (void)note:(id)sender{
NSLog(@"Note");
self.navigationController.navigationBarHidden=YES;
txtview = [[UITextView alloc]initWithFrame:CGRectMake(0,0,320,568)];
txtview.font = [UIFont fontWithName:@"Helvetica" size:12];
txtview.font = [UIFont boldSystemFontOfSize:12];
txtview.backgroundColor = [UIColor whiteColor];
txtview.scrollEnabled = YES;
txtview.pagingEnabled = YES;
txtview.editable = YES;
[self.view addSubview:txtview];
button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self
action:@selector(click:)
forControlEvents:UIControlEventTouchDown];
[button setTitle:@"Done" forState:UIControlStateNormal];
button.frame = CGRectMake(240.0, 20.0, 60.0, 40.0);
[txtview addSubview:button];
}
然后单击完成按钮我保存文本:
-(void)click:(id)sender{
NSLog(@"done");
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
// NSString *documentsDirectory = [paths objectAtIndex:1];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"ohs.sqlite"];
NSLog(@"filepath %@",path);
if (sqlite3_open([path UTF8String], &database) == SQLITE_OK) {
const char *sql = [[NSString stringWithFormat:@"SELECT textnotes FROM textnote where textnote = '%@'",txtview.text] cStringUsingEncoding:NSUTF8StringEncoding];
NSLog(@"sql is %s",sql);
BOOL favExist = false;
sqlite3_stmt *statement, *addStmt;
if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK) {
// We "step" through the results - once for each row.
while (sqlite3_step(statement) == SQLITE_ROW) {
favExist = true;
}
}
if(!favExist){
const char *sqlInsert = [[NSString stringWithFormat:@"insert into textnote (textnotes ) values ('%@')", txtview.text] cStringUsingEncoding:NSUTF8StringEncoding];
NSLog(@"sql insert is %s",sqlInsert);
// [catID release];
if(sqlite3_prepare_v2(database, sqlInsert, -1, &addStmt, NULL) != SQLITE_OK)
NSAssert1(0, @"Error while creating add statement. '%s'", sqlite3_errmsg(database));
if(SQLITE_DONE != sqlite3_step(addStmt))
NSAssert1(0, @"Error while inserting data. '%s'", sqlite3_errmsg(database));
}else {
}
}
[txtview removeFromSuperview];
[button removeFromSuperview];
}
保存文本后,我删除了文本视图,按钮。然后 UIWebView 将显示。UIwebView tocuh 位置如何显示通过 readdle 应用程序保存文本(如 Documents)的按钮。