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

Работа с "вкладками" в самодельном браузере - Objective-C

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Objective-C Сделать собственный алерт http://www.cyberforum.ru/objective-c/thread1402971.html
Помогите пожалуйста сделать алерт... что не пробовал на него просто не действует, он либо базовый либо никакой(( нашел даже код в котором человек уже менял алерт - но у меня он отображается пустым... изначально пытался впихнуть в него UITableView ...но потом оказалось что не в состоянии вообще ничего сделать с ним...либо базовый - либо пустой
Objective-C Пост запрос обработка результата - (void) connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { ; } - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { ; http://www.cyberforum.ru/objective-c/thread1401331.html
Objective c ошибка в коде Objective-C
Помогите пожалуйста разобраться в чем ошибка ) #import <Foundation/Foundation.h> @interface complex: NSObject -(void) setReal: (double) a; -(void) setImaginary: (double) b; -(void) print; -(double) real;
NSTableview hover эффект, Mac Objective-C
Ребят , привет, подскажите как сделать hover эффект? есть таблица, есть класс(объект) всё делегировал как положено(date source + delegate) заполняю таблицу программно, всё в порядке а как сделать hover хз, бьюсь бьюсь - ничего. Спасайте) при hover планирую отображать доп. кнопки и менять бг. P.S. делаю для mac
Objective-C Прозрачный UIViewController http://www.cyberforum.ru/objective-c/thread1399378.html
Всем привет хочу сделать поверх одного вьюконтролера другой с прозрачностью, выставил альфа каналы , убрал бекграунды, юзал такие варианты как setModalPresentationStyle:UIPresentationCurrentContext и т п, но получается что пока форма появляется (выдвигается снизу) она полупрозрачная - а потом становится непрозрачной... дайте код правильный)
Objective-C Скиньте исходники VK приложения Нужен исходный код офф клиента VK, если такой имеется не могли бы скинуть ссылку где его найти. Исходник нужен чисто в учебных целях. подробнее

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

Работа с "вкладками" в самодельном браузере - Objective-C

24.03.2015, 19:16. Просмотров 913. Ответов 2
Метки (Все метки)

Помогите разобраться, не могу уже понять куда копать.
В общем ситуация такая, когда открываю ссылку в новой вкладке все ок. Потому закрываю ее и открываю другую ссылку, она тоже открывается но заголовок вкладки остается от закрытой вкладки. Если меняю фокус на первую вкладку и возвращаюсь обратно, то на вкладке уже отображается не та ссылка что я открыл последней, а та что я открыл и закрыл первой.
Если сильно намудрил с описанием (не знаю как это правильно описать), прикладываю гифку как это происходит :
Скрин

Вот сам код :
.h
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#import <Cocoa/Cocoa.h>
#import <MMTabBarView/MMTabBarView.h>
#import "ERBrowser.h"
@interface ERBrowserWindowController : NSWindowController <NSTextFieldDelegate, NSToolbarDelegate, MMTabBarViewDelegate, NSMenuDelegate>
{
    IBOutlet NSTabView *tabView;
    IBOutlet MMTabBarView *tabBarControl;
    IBOutlet NSSearchField *searchField;
    IBOutlet NSView *mainView;
    NSMutableArray *browserViews;
}
- (MMTabBarView *)tabBarControl;
- (ERBrowser *)addWebView:(NSURL *)url;
@end
.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
- (ERBrowser *)addWebView:(NSURL *)url{
    for (NSView *view in browserViews)
       [view setHidden:true];
 
    ERTabModel *tabModel = [[ERTabModel alloc] init];
    NSTabViewItem *tabItem = [[NSTabViewItem alloc] initWithIdentifier:tabModel];
    [tabView addTabViewItem:tabItem];
    [tabView selectTabViewItem:tabItem];
 
    ERBrowser *browserView = [[ERBrowser 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;
}
- (void)webView:(WebView *)sender didReceiveTitle:(NSString *)title forFrame:(WebFrame *)frame
{
   NSTabViewItem *tabViewItem = nil;
    for (int i = 0; i < [browserViews count]; i++)
        if (browserViews[i] == sender)
            tabViewItem = [tabView tabViewItemAtIndex:i];
    [searchField setStringValue:@""];
    [tabViewItem setLabel:[[frame webView] stringByEvaluatingJavaScriptFromString:@"document.title"]];
}
 
- (WebView *)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request
{
    return [self addWebView:[request URL]];
}
// 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];
        ERBrowser *browserView = browserViews[index];
        [browserView setHidden:false];
        [searchField setStringValue:@""];
        [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];
    }
}
ERBrowser.h
Objective-C
1
2
3
4
5
#import <WebKit/WebKit.h>
 
@interface ERBrowser : WebView
 
@end
ERBrowser.m
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#import "ERBrowser.h"
 
@implementation ERBrowser
 
- (id)initWithFrame:(NSRect)frame
{
    if (self = [super initWithFrame:frame])
    {
        [self setCustomUserAgent:@"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36"];
        
        [self setShouldUpdateWhileOffscreen:true];
    }
    return self;
}
 
@end
B Xcode ругается на :

2015-03-23 19:11:24.469 ERClient[54239:14312957] * WebKit discarded an uncaught exception in the webView:didReceiveTitle:forFrame: delegate: * -[__NSArrayM objectAtIndex:]: index 3 beyond bounds [0 .. 1]

Я пока еще очень плохо во всем этом разбираюсь, перекопал этот код уже кучу раз, так и не смог понять почему так происходит.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru