小编Dan*_*iel的帖子

NSTextField委托通知 - 如何获取文本?

我一直在努力学习使用Xcode,但我对如何注册NSTextField已经改变感到困惑.基本上,我有NSTextField一个按钮.单击该按钮可以显示字段中的文本.但是,我希望能够获取该字段的文本,而无需使用文本字段"操作:发送结束编辑".也就是说,我希望能够输入文本并立即按下按钮,而无需按文本框中的输入或标签.看起来这样做的方法是为我的NSTextField响应设置一个委托

- (void)controlTextDidChange:(NSNotification *)aNotification
Run Code Online (Sandbox Code Playgroud)

但我不明白如何获取已输入的文本.我认为它与某些事情有关

[[aNotification userInfo] valueForKey:@"NSFieldEditor"];
Run Code Online (Sandbox Code Playgroud)

但我真的不知道从那里去哪里.

cocoa notifications delegates objective-c nstextfield

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

Cocoa PDF页面拆分

在我正在创建的应用程序中,我将一长页HTML加载到webView中,然后使用以下内容将其打印到PDF:

-(void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame
{
    if ([frame isEqual:[[self doc] mainFrame]]) 
    {
        NSMutableData *newData = [[NSMutableData alloc] init];
        NSPrintInfo *newInfo = [NSPrintInfo sharedPrintInfo];
        NSView *docView = [[[[self doc] mainFrame] frameView] documentView];

        NSPrintOperation *newPrintOp = [NSPrintOperation PDFOperationWithView:docView insideRect:docView.bounds toData:newData printInfo:newInfo];

        BOOL runPrint = [newPrintOp runOperation];  
        if (!runPrint)
        {
           NSLog(@"Print Failed");
        }
        PDFDocument *newDoc = [[PDFDocument alloc] initWithData:newData];
        [newData release];
        [self setPdf:newDoc];

        //Other code here
        }
    }
Run Code Online (Sandbox Code Playgroud)

问题是,当我看到newDoc它时,它是一个单页的巨大PDF.我更喜欢的是打印行为与"另存为PDF ..."对话框中的行为相同 - 也就是说,将PDF拆分为多个合理大小的页面.

有谁知道如何做到这一点?

我尝试插入以下内容 NSPrintInfo *newInfo = [NSPrintInfo sharedPrintInfo];

[newInfo setVerticalPagination:NSAutoPagination]; …
Run Code Online (Sandbox Code Playgroud)

pdf cocoa objective-c

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

xcode项目中的typedef枚举范围

所以,我目前对枚举的理解是我可以用它来制作与数字相对应的常数.所以,

typedef enum 
{
    number0 = 0,
    number1 = 1,
    .
    .
    .

} Numbers;
Run Code Online (Sandbox Code Playgroud)

允许我在代码的每个部分中将0引用为number0.这似乎工作正常.但是,我无法弄清楚如何在Xcode项目中使用它.例如,假设我写了一个类NumberCounter,并在头文件中包含此代码.然后,我写了另一堂课numberCalculator.如果我想在第二个类中使用相同的定义,我是否必须A)在同一个源文件中编写类,或者B)在我想要使用数字的每个文件中包含上面的代码?

如果我将代码包含在一个类中,并在第二个类中排除它,我得到(当试图让函数返回类型的东西时Numbers)一个Parse Issue Expected a Type错误,但是如果我在两个类中包含代码,它会给出一个关于"重新定义枚举器"的错误.目前,我的解决方法是在每个文件中包含代码,然后使用预处理器确保它只执行一次 - 即:

#ifndef NumberDef
#define NumberDef
typedef enum 
{
    number0 = 0,
    number1 = 1,
    .
    .
    .

} Numbers;
#endif
Run Code Online (Sandbox Code Playgroud)

这有效,但我觉得应该有一个很好的简单方法.我在这里错过了什么?

xcode objective-c

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

标签 统计

objective-c ×3

cocoa ×2

delegates ×1

notifications ×1

nstextfield ×1

pdf ×1

xcode ×1