小编man*_*ahn的帖子

键盘出现时如何滚动UIScrollView?

我的代码遇到了问题.我正在尝试移动UIScrollView当我正在编辑时UITextField应该被键盘弹出隐藏.

我现在正在移动主框架,因为我不知道如何在代码中"向上滚动".所以,我做了一些代码,它工作正常但是当我编辑一个UItextfield并且我切换到另一个UITextField而没有按下"返回"按钮时,主视图变得非常了不起.

NSLog()用变量大小,距离和textFieldRect.origin.y 做了一个,如下所示.当我把两个UITextField放在同一个地方(y原点)并且我做这个特别的'开关'(没有按回车)时,我得到相同的数字,而我的代码在第一次UITextField编辑时工作正常但不适用于第二次编辑.

看一下这个:

- (void)textFieldDidBeginEditing:(UITextField *)textField {
{
    int size;
    CGRect textFieldRect = [self.view.window convertRect:textField.bounds fromView:textField];
    size = textFieldRect.origin.y + textFieldRect.size.height;
    if (change == FALSE)
    {
        size = size - distance;
    }
    if (size < PORTRAIT_KEYBOARD_HEIGHT)
    {
        distance = 0;
    }
    else if (size > PORTRAIT_KEYBOARD_HEIGHT)
    {
        distance = size - PORTRAIT_KEYBOARD_HEIGHT + 5; // +5 px for more visibility
    }
    NSLog(@"origin %f", textFieldRect.origin.y);
    NSLog(@"size %d", …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch objective-c scrollview ios

102
推荐指数
8
解决办法
10万
查看次数

Xcode7能量分析仪的"开销"是什么?

我正在检查将大量内容加载到Web视图中的应用程序的能量分析.我受到以下规格的欢迎.我发现能源影响很大,而且开销一直很高(屏幕截图中为54%).

能量计的Overhead stat是什么意思? 在此输入图像描述

profiling energy xcode7

16
推荐指数
2
解决办法
6128
查看次数

拖出以删除项目

你知道当你从停靠栏中拖出一个项目并且那个云拖动光标出现时的效果,当你松开它时会消失效果吗?类似地,在Xcode中,当您在行号装订线外拖动断点时,也会发生同样的情况.

我想在我的应用程序中实现相同的效果,但找不到正确的方法.

我有一个NSImageView后代来实现NSDraggingSource和NSDraggingDestination协议.我有这个视图的几个实例,允许在其他视图之间拖动它们的内容(在这种情况下进行复制操作,但这只是显示我已经拖拽并完全适用于标准任务).

现在,当我将图像从视图拖到任何地方(另一个视图实例除外)时,我希望删除操作在drop上进行.但是,拖动操作完全由目标视图控制.我可以设法让它们以我想要的方式响应(即使这将是很多工作),但是如果我拖到我的应用程序之外它就完全失败了.

如果我可以获得删除拖动操作,我可以通过以下方式轻松处理:

- (void)draggedImage: (NSImage *)image
             endedAt: (NSPoint)screenPoint
           operation: (NSDragOperation)operation
{
    if (operation == NSDragOperationDelete) {
        NSRect rect = [self.window convertRectToScreen: [self convertRect: self.frame fromView: nil]];
        NSShowAnimationEffect(NSAnimationEffectPoof, rect.origin, self.bounds.size, nil, nil, NULL);
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试过像这样设置删除游标:

- (void)draggingSession: (NSDraggingSession *)session
           movedToPoint: (NSPoint)screenPoint
{
    if (!NSPointInRect(screenPoint, self.window.frame)) {
        [[NSCursor disappearingItemCursor] set];
    }
}
Run Code Online (Sandbox Code Playgroud)

(为简单起见,这是目前整个windw).只要我没有点击桌面或取景器窗口,这就可以工作.在开始闪烁时,可能是因为Finder同时设置了自己的拖动光标.当我撞到码头时它完全没有效果.当我定义自己的粘贴板数据类型时,也会发生这种情况.

此外,我的应用程序中任何其他启用drop的视图仍然会接受我不希望发生的拖动数据(例如NSTextView)(我正在使用自定义方案将NSURL写入拖动粘贴板).

更新:

我走了几步.正如彼得已经指出的draggingSession:sourceOperationmaskForDraggingContext:那样,在我的代码中处理哪个看起来很重要:

- (NSDragOperation)       draggingSession: (NSDraggingSession *)session
    sourceOperationMaskForDraggingContext: (NSDraggingContext)context;
{
    switch(context) {
        case NSDraggingContextOutsideApplication:
            return NSDragOperationDelete;
            break;

        case NSDraggingContextWithinApplication:
        default:
            return NSDragOperationDelete …
Run Code Online (Sandbox Code Playgroud)

macos cocoa objective-c

14
推荐指数
1
解决办法
2372
查看次数

UIActivityViewController:呈现的视图控制器的色彩

在应用程序中,我使用白色作为主色调颜色.如果用户打开UIActivityViewController,我将控制器的色调颜色设置为标准iOS蓝色.这对于活动视图本身很有用,但是当想要发送邮件时,色调颜色不是蓝色而是白色.

有一种方法来设置呈现视图的色调颜色会很棒.有吗?

打开a MFMailComposeViewController并将色调颜色设置为蓝色也会对显示产生影响UIActionSheet,如果MFMailComposeViewController从内部打开则不会产生影响UIActivityViewController.

有关说明,请参见屏幕截图:http://i.imgur.com/OggykJF.png

编辑:这是我为添加色调颜色所做的UIActivityViewController:

UIActivityViewController

xcode objective-c ios swift

10
推荐指数
2
解决办法
2914
查看次数

CALayer与支持Layer的NSView性能

我计划有一个视图,可以包含数百个CALayer对象内部和彼此相邻.因此,这必须尽可能高效.这些层不是很复杂.它们是不透明的,可以是文本或形状层.这层数量必须得到铺设.我会用CAConstraints它.

来自Apples Docs:

重要提示:在OS X v10.8及更高版本中,建议您最小化层层次结构的使用,并仅使用图层支持的视图.在该版本的OS X中引入的图层重绘策略允许您自定义图层支持的视图的行为,并且仍然可以获得您之前使用独立图层获得的性能.

我知道CALayer对象比视图更轻量级.我不确定为什么我们应该直接使用图层支持的视图而不是图层.它是为了易于使用自动布局还是与此声明有更多的性能/内存相关的原因?我希望获得最佳性能,因为此代码将在OS X和iOS上运行.

我该走哪条路?自动布局和图层支持NSViews或自定义CALayer层次结构?

macos cocoa cocoa-touch core-animation ios

6
推荐指数
1
解决办法
458
查看次数

使用自动布局在NSClipView/NSScrollView中的NSTableView框架

我正在尝试使用自动布局在代码中创建一个NSTableView内部NSScrollView(标准配置,即).我无法弄清楚如何使这项工作.

这是我的loadView:

- (void)loadView
{
    NSView *view = [[NSView alloc] init];

    NSScrollView *tableScroll = [[NSScrollView alloc] init];
    NSTableView *fileTable = [[NSTableView alloc] init];
    [tableScroll setDocumentView:fileTable];
    [tableScroll setHasVerticalScroller:YES];
    [tableScroll setHasHorizontalScroller:NO];
    fileTable.delegate = self;
    fileTable.dataSource = self;
    [fileTable setHeaderView:nil];
    [fileTable setAllowsColumnReordering:NO];

    NSTableColumn *column = [[NSTableColumn alloc] initWithIdentifier:@"column1"];
    [fileTable addTableColumn:column];

    [tableScroll setTranslatesAutoresizingMaskIntoConstraints:NO];
    [fileTable setTranslatesAutoresizingMaskIntoConstraints:NO];

    [view addSubview:tableScroll];

    NSDictionary *topViews = NSDictionaryOfVariableBindings(tableScroll);
    [view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[tableScroll]|" options:0 metrics:nil views:topViews]];
    [view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[tableScroll]|" options:0 metrics:nil views:topViews]];

    self.fileTable = fileTable;

    self.view = view;
} …
Run Code Online (Sandbox Code Playgroud)

macos cocoa nstableview nsscrollview autolayout

5
推荐指数
1
解决办法
1623
查看次数

如何在OS X中将视图导出为PDF?

在OS X 10.9中,Apple引入了一种将用户内容导出为PDF的简单方法.名为"导出为PDF"的菜单项用于显示保存表以导出数据.(这方面的一个例子是Safari)在其WWDC视频中,Apple展示了它是如何工作的,但我的解决方案似乎并不正确.我使用的是基于非文档的应用程序.

到目前为止,我已经设法获得了保存页,但是使用我当前的代码,之后我也得到了打印页.此外,到目前为止还没有保存数据.

这是我的代码:

NSPrintOperation* printOP = [NSPrintOperation printOperationWithView:_textView];
printOP.printInfo.jobDisposition = NSPrintSaveJob;
[printOP runOperationModalForWindow:_window 
                           delegate:nil didRunSelector:nil contextInfo:nil];
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

谢谢

pdf macos cocoa

3
推荐指数
1
解决办法
740
查看次数

如何更改UITableViewCell的高度?

我试图让UITableViewCell在点击特定单元格时显示有关特定单元格的更多内容.一旦细胞膨胀并再次敲击,细胞应缩小回原始大小.

我敢肯定有东西要与代表们做了heightForRowAtIndexPathdidSelectRowAtIndexPath,但我不知道如何使用didSelectRowAtIndexPath方法来选择特定的表格单元格一行.

// Height of table cell rows
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return 45
}

//On cell tap, expand
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    self.tableView.rowHeight = 75;
}
Run Code Online (Sandbox Code Playgroud)

此外,是否可以隐藏从父单元溢出的任何内容?有点像溢出:隐藏; 在CSS中.

cocoa-touch delegates uitableview ios swift

3
推荐指数
3
解决办法
7124
查看次数

将NSString绘制到CALayer中

出于动画原因,我必须将一个NSString绘制到CALayer对象中.这就是我无法使用CATextLayer的原因.

问题是我无法在屏幕上看到文字.我知道我必须在graphicsContext中绘制,这是在drawInContext()中传递的.我无法弄清楚如何从CGContext实例中创建NSGraphicsContext实例.不推荐使用graphicsContextWithGraphicsPort类方法.它有替代品吗?

注意:我使用的是Swift.

macos cocoa core-graphics swift

2
推荐指数
1
解决办法
803
查看次数

更改iOS Swift中导航栏项的Alpha值

在ViewDidAppear中,我将导航栏的alpha值更改为0.15,但右侧导航栏项也变得几乎不可见.

self.navigationController?.navigationBar.alpha = 0.15
Run Code Online (Sandbox Code Playgroud)

是否可以更改右侧导航栏项目的透明度/ alpha值,使其完全可见(alpha = 1),同时导航栏本身为0.15?

cocoa-touch uinavigationbar ios swift

2
推荐指数
1
解决办法
4867
查看次数

如何为NSAttributedString设置动画?

我需要为属性字符串的颜色和比例设置动画.CATextLayer对我不起作用,因为它只能改变普通字符串的前景色.

我找到了另一个解决方案,但我没有让它工作到 Link

我需要让它在Mac和iOS上都能运行.我认为图层是理想的,因为我可以轻松地进行缩放.

你有什么想法?

macos cocoa objective-c ios swift

1
推荐指数
1
解决办法
1201
查看次数

Cocoa NSScrollView不滚动

我尝试创建一个scrollview.通过Xib创建了一个scrollview,以编程方式添加了scrolledView(一个包含scrollView中所有子视图的NSView).

以下代码显示了子视图,但scrollView未滚动.为什么?

class LevelScrollController: NSViewController {

@IBOutlet var scrollView: NSScrollView!

override func viewDidLoad() {
    super.viewDidLoad()

    let scrolledView = NSView(frame: NSRect(x: 0, y: 0, width: scrollView.frame.size.width, height: 300))

    // Inserisco pulsanti di esempio
    for i in 1 ... 10{
        scrolledView.addSubview(NSButton(frame: NSRect(x: 0, y: i*30, width: 100, height: 30)))
    }
    scrollView.addSubview(scrolledView)



}
Run Code Online (Sandbox Code Playgroud)

将代码放在viewDidLayout而不是viewDidLoad中不会更改结果:不滚动

macos cocoa nsscrollview swift

1
推荐指数
1
解决办法
999
查看次数