小编Ped*_*ues的帖子

当父不是窗口时,有没有办法获得相对于最内层NSView的坐标?

我对NSView有疑问:

想象一下自定义视图,其中mouseDown,mouseDrag和mouseUp方法被覆盖,因此用户可以在屏幕上拖动一个点(NSRect).要拖动它,我需要相对于当前视图的鼠标坐标.当视图的父级是窗口时,这不是问题,但是当视图在另一个视图中时,如何获取它们?

@implementation MyView

- (id)initWithFrame:(NSRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        pointXPosition = 200.0f;
        pointYPosition = 200.0f;

        locked = NO;
    }
    return self;
}

- (void) drawRect:(NSRect)rect {

    NSRect point = NSMakeRect(pointXPosition, pointYPosition, 6.0f, 6.0f);
    [[NSColor redColor] set];
    NSRectFill(point);

}

- (void)mouseDown:(NSEvent *)theEvent {
    NSPoint mousePos = [theEvent locationInWindow];
    NSRect frame = [super frame];
    CGFloat deltaX = mousePos.x - frame.origin.x - pointXPosition;
    CGFloat deltaY = mousePos.y - frame.origin.y - pointYPosition;
    if(sqrtf(deltaX * deltaX + deltaY * deltaY) …
Run Code Online (Sandbox Code Playgroud)

cocoa

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

.comm是什么意思?

我刚刚翻译了这个程序,

#include <stdio.h>

int dam[1000][1000];


int main (int argc, const char * argv[]) {
    // insert code here...
    printf("Hello, World!\n");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

使用gcc生产组装,

    .cstring
LC0:
    .ascii "Hello, World!\0"
    .text
.globl _main
_main:
    pushl   %ebp
    movl    %esp, %ebp
    pushl   %ebx
    subl    $20, %esp
    call    L3
"L00000000001$pb":
L3:
    popl    %ebx
    leal    LC0-"L00000000001$pb"(%ebx), %eax
    movl    %eax, (%esp)
    call    L_puts$stub
    movl    $0, %eax
    addl    $20, %esp
    popl    %ebx
    leave
    ret
.comm _dam,1000000,5
    .section __IMPORT,__jump_table,symbol_stubs,self_modifying_code+pure_instructions,5
L_puts$stub:
    .indirect_symbol _puts
    hlt ; hlt ; hlt ; …
Run Code Online (Sandbox Code Playgroud)

x86 assembly gcc gnu-assembler

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

Windows编程:从哪里开始?

我是Mac的长期用户,拥有相当多的编程经验,我想尝试为Windows编程.问题是我不知道从哪里开始,我应该先学习什么?.Net,Win32?

[澄清]:我的最终目标是使用最新的API创建一个或多或少复杂的应用程序,但我想知道我所摒弃的基础.

windows

4
推荐指数
2
解决办法
1087
查看次数

标签 统计

assembly ×1

cocoa ×1

gcc ×1

gnu-assembler ×1

windows ×1

x86 ×1