小编rdo*_*gan的帖子

使用自定义视图突出显示NSMenuItem?

我创建了一个简单NSStatusBarNSMenu设置作为菜单.我还在NSMenuItems这个菜单中添加了一些,它工作得很好(包括选择器和突出显示),但是一旦我添加自定义视图(setView :),就不会突出显示.

CustomMenuItem *menuItem = [[CustomMenuItem alloc] initWithTitle:@"" action:@selector(openPreferences:) keyEquivalent:@""];
[menuItem foo];
[menuItem setTarget:self];
[statusMenu insertItem:menuItem atIndex:0];
[menuItem release];
Run Code Online (Sandbox Code Playgroud)

我的foo方法是:

- (void)foo {
  NSView *view = [[NSView alloc] initWithFrame:CGRectMake(5, 10, 100, 20)];
  [self setView:view];
}
Run Code Online (Sandbox Code Playgroud)

如果我删除了setView方法,它将突出显示.

我搜索并搜索过,找不到实现/启用此方法的方法.

编辑

我在NSView SubClass中按照此问题中的代码实现了突出显示:

NSMenuItem的视图(NSView子类的实例)在悬停时不突出显示

#define menuItem ([self enclosingMenuItem])

- (void) drawRect: (NSRect) rect {
    BOOL isHighlighted = [menuItem isHighlighted];
    if (isHighlighted) {
        [[NSColor selectedMenuItemColor] set];
        [NSBezierPath fillRect:rect];
    } else {
        [super drawRect: rect];
    }
}
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c nsmenuitem

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

将html文件加载到面板中

我是sencha touch 2.0的新手.我有一个html文件.我正在尝试将此html文件(或内容)加载到面板中.我只是使用ajax调用,但它不起作用.以下是代码.

这是我在浏览器中运行的html文件.

index.html:

<script type="text/javascript" src="touch/sencha-touch-debug.js"></script>
<script type="text/javascript" src="HTMLPanel.js"></script>
<script type="text/javascript" src="app.js"></script>
Run Code Online (Sandbox Code Playgroud)

这是app.js:

Ext.setup({
    name : 'SampleLoad',
    requires : ['HTMLPanel'],
    launch : function () {
        var HTMLPanel = new HTMLPanel({
            scroll : 'vertical',
            title : 'My HTML Panel',
            url : 'sample.html'
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

这是HTMLPanel.js:

//HTMLPanel = Ext.extend(Ext.Panel, { //gives error 
var HTMLPanel = Ext.define('HTMLPanel',{
    extend : 'Ext.Panel',
    constructor : function( config ) {
        HTMLPanel.superclass.constructor.apply(this, arguments);

        // load the html file with ajax …
Run Code Online (Sandbox Code Playgroud)

sencha-touch-2

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

NSTextAttachment在UILabel中的位置?

我有一个UILabel显示NSAttributedString.该字符串包含文本和UIImagea NSTextAttachment.

在呈现时,有没有一种方式来获得的位置NSTextAttachmentUILabel

编辑

这是我想要达到的最终结果.

当文本只有1行长时,图像应该在正确的边缘UILabel.简单:

单行UILabel

如果您有多行,但仍希望图像位于最后一行的末尾,则会出现问题:

多线UILabel

objective-c nsattributedstring uilabel nstextattachment ios

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

构建Sencha Touch 2应用程序时出错

当我使用命令构建我的sencha touch 2应用程序时: - sencha app build production

但它会抛出一个错误:

[INFO] Deploying your application to /Applications/MAMP/htdocs/iPadapp/build/production
[INFO] Copied sdk/sencha-touch.js
[INFO] Copied app.js
[INFO] Copied resources/css/app.css
[INFO] Copied resources/images
[INFO] Copied resources/icons
[INFO] Copied resources/loading
[INFO] Resolving your application dependencies...
[ERROR] Error thown from your application with message: TypeError: 'undefined' is not an object
Run Code Online (Sandbox Code Playgroud)

我在我的代码中跟踪了错误.我发现,这是由于加载我的清单.这是我的代码

Ext.define("myProject.store.Members",{
    extend  :'Ext.data.Store',
    requires:"Ext.data.proxy.LocalStorage",
    config: {
        model   :"myProject.model.Member",
        sorters :'lastName',
        autoload:true,

        proxy: {
            type: 'localstorage',
            id  : 'mainStore'
        } 
    }
});
Run Code Online (Sandbox Code Playgroud)

如果我删除行'autoLoad:true'(这会破坏我的应用程序,然后我可以构建应用程序.但是我的列表没有加载.如果我把它重新发送错误重复.我尝试使用加载函数动态加载列表,但是它没有任何意义.

这是我有趣的model.js文件.

Ext.define('myProject.model.Member', {
    extend: 'Ext.data.Model', …
Run Code Online (Sandbox Code Playgroud)

javascript load list sencha-touch sencha-touch-2

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

使用Swift访问类单例时的semaphore_wait_trap

我遇到了一个奇怪的问题.我可以很好地访问我的类单例实例,但是如果我再次尝试访问它,它就会挂起.这是代码的简单版本:

private let _SharedInstance = MyManager()

class MyManager: NSObject {

    class var sharedInstance: MyManager {
        return _SharedInstance
    }

    override init() {
        super.init()

        println("init")

        println(self.accessToken())
        println(MyManager)
        println("test 1")
        println(MyManager.sharedInstance)
        println("test 2")
    }

}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它从内部调用它init,但它发生在其他地方.

代码永远不会到达test 2.一旦它访问MyManager.sharedInstance它挂起.没有错误或警告.

如果我暂停调试器,我可以看到它当前正在运行 semaphore_wait_trap

图片(差异类名称):

堆栈跟踪

重新启动Xcode或计算机没有帮助.

xcode objective-c swift

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

是否可以在不复制所有代码的情况下复制iOS应用程序?

我有3个共享许多功能的应用程序.它们之间只是内容和样式的变化.

而不是简单地为每个应用程序复制项目,有没有办法制作一个"基础"应用程序,然后让3个应用程序扩展这个?

简单地复制项目将是可怕的维护,而扩展"基础"将允许他们同时更新.

我知道您可以创建项目,然后将旧项目中的所有文件复制到新项目中.这将使文件保持最新,但是如果添加或删除任何文件,则必须手动执行此操作.

xcode cocoa cocoa-touch objective-c ios

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

点击事件在视野中不起作用

请检查下面的代码,我做错了什么?我想在主体上点击事件时输出到控制台.

 Ext.define('iApp.view.LoginView', {
    extend: 'Ext.Panel',
    xtype: 'loginViewPanel',

    config: {
        style: "background-color: #3f3f3f;",
        html: 'hello world',
        listeners: {
            el: {
                tap: function() {
                    console.log('tapped');
                }
            }
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

没有输出到控制台......

sencha-touch-2

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

Sencha Touch 2 - 什么是初始化和初始化?

控制器中的init和视图中的initilize做了什么.我想要一个在视图加载之前运行的函数.我正在使用MVC.

sencha-touch-2

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

在iOS中将int转换为字符串的更好方法

我想知道是否有更好的方法将int转换为字符串基本上我有一个计数器和一个字典

//
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
int cnt = 0;
//
// insert an object
//
id object = [[[SomeObject alloc] init] autorelease];
NSString *key = [NSString stringWithFormat:@"%d", cnt++];
[dict setObject:object forKey:key];
Run Code Online (Sandbox Code Playgroud)

将int转换为字符串需要的时间比我预期的要长.那么有更好的解决方法吗?

objective-c nsstring ios ios7

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