我创建了一个简单NSStatusBar
的NSMenu
设置作为菜单.我还在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) 我是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) 我有一个UILabel
显示NSAttributedString
.该字符串包含文本和UIImage
a NSTextAttachment
.
在呈现时,有没有一种方式来获得的位置NSTextAttachment
的UILabel
?
编辑
这是我想要达到的最终结果.
当文本只有1行长时,图像应该在正确的边缘UILabel
.简单:
如果您有多行,但仍希望图像位于最后一行的末尾,则会出现问题:
当我使用命令构建我的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) 我遇到了一个奇怪的问题.我可以很好地访问我的类单例实例,但是如果我再次尝试访问它,它就会挂起.这是代码的简单版本:
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或计算机没有帮助.
我有3个共享许多功能的应用程序.它们之间只是内容和样式的变化.
而不是简单地为每个应用程序复制项目,有没有办法制作一个"基础"应用程序,然后让3个应用程序扩展这个?
简单地复制项目将是可怕的维护,而扩展"基础"将允许他们同时更新.
我知道您可以创建项目,然后将旧项目中的所有文件复制到新项目中.这将使文件保持最新,但是如果添加或删除任何文件,则必须手动执行此操作.
请检查下面的代码,我做错了什么?我想在主体上点击事件时输出到控制台.
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)
没有输出到控制台......
控制器中的init和视图中的initilize做了什么.我想要一个在视图加载之前运行的函数.我正在使用MVC.
我想知道是否有更好的方法将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 ×5
ios ×3
cocoa ×2
xcode ×2
cocoa-touch ×1
ios7 ×1
javascript ×1
list ×1
load ×1
nsmenuitem ×1
nsstring ×1
sencha-touch ×1
swift ×1
uilabel ×1