Форум программистов, компьютерный форум CyberForum.ru

MMTabBarView закрытие вкладок - Objective-C

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Objective-C Objective-C. Преимущества использования @property по сравнению с (ivar +setter/getter) http://www.cyberforum.ru/objective-c/thread1390140.html
Добрый день, не могу понять одну вещь. Вот лекциях по Objective-C говорят, что одним из ключевых плюсов и необходимостью использования @property является возможность реалиции lazy instantiation. Как я понял, lazy instantiation нужна, чтобы у нас не возникало таких ситуаций, когда мы хотим получить значение объекта, который еще не создан. Вот такой пример: через @property...
Objective-C ARC не освобождает память Всем добрый вечер! Пишу приложение, скачивающее картинки. Картинки храню в Core Data. Приложение уж больно много жрет памяти. Я новичок, и не совсем понимаю принцип работы ARC. Почитал статьи на хабре и еще парочке тематических сайтов, все равно не пойму, в чем может быть причина. Подозрения пали на 3 места в коде 1) Высвобождается ли память, занятая под imageData после перехода к следующей... http://www.cyberforum.ru/objective-c/thread1390013.html
Реализация динамической библиотеки Objective-C
Приветствую всех! В Objective-C новичок, и интересует следующие. Методики/примеры/статьи и т.д. по реализация программ с системой плагинов (dylib). Заранее благодарен.
NSScrollView не показывает содержимое Objective-C
Не могу понять в чем проблема. Есть на главной вьюшке (окне) NSScrollView. Если внутрь него добавлять элементы, до компиляции они видны, после уже нет. Также в коде appDelegate. я пробовал сделать аутлеты на главное вью, вью таблицы(я хочу несколько таблиц расположить во вьюшке с возможностью скролить их по горизонтали) и вью собсно скроллвью. по коду ; //таблица добавляется на...
Objective-C Не получается присвоить переменной значение в методе IBAction http://www.cyberforum.ru/objective-c/thread1388722.html
Добрый день. Если кто может - помогите, пожалуйста ! У меня есть два класса: ViewController, ViewController2 В первом классе по нажатию кнопки Button переменной string нужно присвоить значение "any_string". Я это делаю следующим образом: //ViewController.h #import <UIKit/UIKit.h> #import <Foundation/Foundation.h> @interface ViewController : UIViewController @property...
Objective-C Сохранить изображение в Core Data Всем добрый вечер! Покажите на самом простом примере как работать с Core Data: нужен пример как сохранять картинку в локальное хранилище и как её потом оттуда вытащить. Я создал бд (.xdatamodeld), создал там сущность, в которой есть атрибут с бинарной датой (mainPhoto) и строкой (photo_Id) Привязал эту сущность к классу, появился класс с соответствующими свойства, помеченными как @dуnamic (как... подробнее

Показать сообщение отдельно
sp1derok
1 / 1 / 0
Регистрация: 04.02.2015
Сообщений: 18

MMTabBarView закрытие вкладок - Objective-C

08.03.2015, 19:37. Просмотров 593. Ответов 2
Метки (Все метки)

Всем привет.
Сделал веб браузер и с использованием MMTabBarView для создание вкладок как в хроме или сафари, но не могу до конца разобраться как добавить на возможность их закрытия. Получается так что если я открываю ссылку в новой в кладке, то закрыть нельзя.
Хотя мне нужно немного хитрее сделать, что бы первая вкладка не закрывалась, а все остальные можно было бы закрыть.
Суть в том что в первой вкладке грузится сайт с игрой, а все остальные вкладки буду использовать для открытия форума или информации о персонажах.
Вот код :
AppDelegate.m
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#import "AppDelegate.h"
#import "MainWindowController.h"
 
@implementation AppDelegate
 
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
   // Insert code here to initialize your application
   
   mainWindowController = [[MainWindowController alloc] initWithWindowNibName:@"MainWindow"];
   [mainWindowController showWindow:self];
   [mainWindowController addWebView:[NSURL URLWithString:@"http://www.neverlands.ru"]];
}
 
@end
MainWindowController.m
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#import "MainWindowController.h"
#import "BrowserView.h"
 
 
@interface MainWindowController ()
 
@end
 
@implementation MainWindowController
 
- (id)initWithWindow:(NSWindow *)window
{
   if (self = [super initWithWindow:window])
   {
      browserViews = [[NSMutableArray alloc] init];
   }
   
   return self;
}
 
- (void)windowDidLoad
{
   [super windowDidLoad];
   
   for (NSTabViewItem *item in [tabView tabViewItems])
      [tabView removeTabViewItem:item];
   
   [tabView setAutoresizesSubviews:true];
   [searchField setDelegate:self];
 
   
   [tabBarControl setDelegate:self];
}
 
- (BrowserView *)addWebView:(NSURL *)url
{
   for (NSView *view in browserViews)
      [view setHidden:true];
   
   NSTabViewItem *tabViewItem = [[NSTabViewItem alloc] init];
   [tabViewItem setLabel:@"New Tab"];
   [tabView addTabViewItem:tabViewItem];
   [tabView selectTabViewItem:tabViewItem];
   
   BrowserView *browserView = [[BrowserView alloc] initWithFrame:mainView.frame];
   [browserView setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)];
   [mainView addSubview:browserView];
   [browserViews addObject:browserView];
   
   [browserView setUIDelegate:self];
   [browserView setFrameLoadDelegate:self];
   
   if (url)
      [[browserView mainFrame] loadRequest:[NSURLRequest requestWithURL:url]];
   
   return browserView;
}
 
//Open player info or web
- (void)controlTextDidEndEditing:(NSNotification *)notification
{   
   if ( [[[notification userInfo] objectForKey:@"NSTextMovement"] intValue] == NSReturnTextMovement )
   {
      // Assume first subview of select tabViewItem view is browserView
      NSInteger index = [tabView indexOfTabViewItem:[tabView selectedTabViewItem]];
      BrowserView *browserView = browserViews[index];
      
      NSLog(@"Return was pressed!");
      NSString *text = [searchField stringValue];
      
      
      if ([text rangeOfString:@" "].location != NSNotFound) 
      {
         text = [text stringByReplacingOccurrencesOfString:@" " withString:@"+"];
 
         text = [NSString stringWithFormat:@"%@%@", @"http://neverlands.ru/pinfo.cgi?", text]; // Player info
         [[browserView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:text]]];
      }
      else
      {
         if ([text hasPrefix:@"http://"] || [text hasPrefix:@"https://"])
            [[browserView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:text]]];
         else if ([text rangeOfString:@".ru"].location != NSNotFound)
         {
            text = [NSString stringWithFormat:@"%@%@", @"http://", text];
            [[browserView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:text]]];
         }
         else
         {
            text = [text stringByReplacingOccurrencesOfString:@" " withString:@"+"];
            
            text = [NSString stringWithFormat:@"%@%@", @"http://neverlands.ru/pinfo.cgi?", text]; // Player info
            [[browserView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:text]]];
         }
      }
   }
}
 
- (void)webView:(WebView *)sender didReceiveTitle:(NSString *)title forFrame:(WebFrame *)frame
{
 
   NSTabViewItem *tabViewItem = nil;
   for (int i = 0; i < [browserViews count]; i++) // find tabViewItem relative to sender WebView
      if (browserViews[i] == sender)
         tabViewItem = [tabView tabViewItemAtIndex:i];
   
   [searchField setStringValue:[[frame webView] mainFrameURL]];
   [tabViewItem setLabel:[[frame webView] stringByEvaluatingJavaScriptFromString:@"document.title"]];
}
 
// Method called when webView javascript requests new window with request
- (WebView *)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request
{
   return [self addWebView:[request URL]];
}
 
//Open forum, wiki and ...
- (IBAction)bookmarkButton:(NSButton*)sender
{
   BrowserView *browserView = [browserViews objectAtIndex:[tabView indexOfTabViewItem:[tabView selectedTabViewItem]]];
   [[browserView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[sender alternateTitle]]]];
}
 
 
 
// MMTabBarVievDelegate
- (void)tabView:(NSTabView *)aTabView didSelectTabViewItem:(NSTabViewItem *)tabViewItem
{
   NSInteger index = [aTabView indexOfTabViewItem:tabViewItem];
   
   if ([browserViews count] > index)
   {
      for (NSView *view in browserViews)
         [view setHidden:true];
      
      BrowserView *browserView = browserViews[index];
      [browserView setHidden:false];
      
      [searchField setStringValue:[browserView mainFrameURL]];
      [tabViewItem setLabel:[browserView stringByEvaluatingJavaScriptFromString:@"document.title"]];
   }
}
 
- (void)tabView:(NSTabView *)aTabView didCloseTabViewItem:(NSTabViewItem *)tabViewItem
{
   NSInteger index = [aTabView indexOfTabViewItem:tabViewItem];
   
   if ([browserViews count] > index)
   {
      [browserViews removeObjectAtIndex:index];
   }
}
 
 
 
@end
И второй вопрос, в коде еще реализовано открытие информации о персонаже или же сайта. Так вот тоже не могу понять как сделать что бы при вводе чего либо в это поле, открывалось не в текущей вкладке, а в новой,
Так же есть ссылки на панели, тоже не пойму как сделать что бы они открывались в новой вкладке.

Вот так это сейчас выглядит :
http://firepic.org/thumbs/2015-03/08/bto6ab8semdc.png
1. Не закрывать и не открывать какие либо другие сайты кроме заданного.
2. Сделать возможность закрыть вкладки.
3. Открывать всегда в новой вкладке.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru