有人可以向我指出一个关于如何为Cocoa应用程序创建帮助手册的最新教程.我在网上找到的所有内容都陈旧且过时,Apple文档并没有让它更清晰.我无法弄清楚的一个具体问题是如何创建.help包.
我有一个NSPopover谁在NSView中的内容.我创建了popover并添加了这样的视图:
NSPopover *thePopover = [[NSPopover alloc] init];
[thePopover setContentViewController:myViewController];
Run Code Online (Sandbox Code Playgroud)
然后我显示popover并设置大小:
[thePopover setContentSize:NSMakeSize(300.0f, 160.0f)];
Run Code Online (Sandbox Code Playgroud)
此时,弹出窗口可见,其内容视图正确.有没有办法让我可以在不关闭并重新显示的情况下调整popover的大小?
我有一个ListView有Grid两列和多行.每一行在每列中都有一个绑定到ListView中的值的TextBlock每个Text属性ItemSource.我需要TextBlock根据第一个中的值对第二个文本进行一些转换TextBlock.如何将第一个文本框的值输入转换器?
这是我到目前为止:
XAML:
<UserControl.Resources>
<local:ValueStringConverter x:Key="valueStringConverter" />
</UserControl.Resources>
<ListView Name="theListView" ItemsSource="{Binding ItemCollection}" SelectedItem="{Binding SelectedItem}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Grid.Row="1" >
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Path=Key}" Grid.Column="0" Margin="0,0,10,0" />
<TextBlock Text="{Binding Path=Value, Converter={StaticResource valueStringConverter}}" TextWrapping="Wrap" Grid.Column="1" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Run Code Online (Sandbox Code Playgroud)
代码ValueStringConverter:
public class ValueStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, …Run Code Online (Sandbox Code Playgroud) 我遇到了导致崩溃的内存问题.我循环遍历一个字典数组,然后在里面循环我创建的键数组.我使用该键数组中的每个键来获取字典中该键的值.然后我通过附加值来创建一个字符串.该字符串将包含大量数据.
我也在使用ARC,所以我不能手动发布.
内存峰值发生在stringByAppendingFormat行上.
NSString *theString = [[NSString alloc] init];
for (NSMutableDictionary *aDict in collectionArray)
{
for (NSString *key in itemKeys)
{
NSString *valueString = [aDict valueForKey:key];
// Memory spikes here
theString = [theString stringByAppendingFormat:@"%@,", valueString];
}
}
Run Code Online (Sandbox Code Playgroud)